Коды ответов HTTP

Справочник кодов ответа HTTP с описанием на русском — от 100 до 504, с поиском по коду или слову.

100

Continue

Сервер получил заголовки запроса, клиент может отправлять тело запроса дальше.

101

Switching Protocols

Сервер согласился сменить протокол по запросу клиента — например, на WebSocket.

103

Early Hints

Предварительные заголовки, пока сервер готовит основной ответ — браузер может заранее начать загрузку ресурсов.

200

OK

Запрос выполнен успешно, тело ответа содержит результат.

201

Created

Запрос выполнен, и в результате создан новый ресурс — типичный ответ на POST.

202

Accepted

Запрос принят к обработке, но она ещё не завершена — обычно для асинхронных задач.

204

No Content

Запрос выполнен успешно, но отвечать нечем — тело ответа пустое. Частый ответ на DELETE.

206

Partial Content

Сервер отдал только часть ресурса по запросу Range — используется при докачке файлов и стриминге видео.

301

Moved Permanently

Ресурс окончательно переехал на новый адрес, указанный в заголовке Location. Поисковики переносят вес страницы на новый URL.

302

Found

Временный редирект — ресурс сейчас доступен по другому адресу, но исходный URL остаётся действующим.

304

Not Modified

Ресурс не изменился с последнего запроса — браузер может использовать закэшированную версию.

307

Temporary Redirect

Как 302, но строго запрещает менять метод запроса — POST останется POST после перехода.

308

Permanent Redirect

Как 301, но, в отличие от него, запрещает менять метод запроса.

400

Bad Request

Сервер не смог разобрать запрос — обычно из-за неверного синтаксиса или некорректных данных.

401

Unauthorized

Запрос требует аутентификации — нужно передать корректные учётные данные или токен.

403

Forbidden

Сервер понял запрос, но отказывается его выполнять — доступ к ресурсу запрещён, даже с верной авторизацией.

404

Not Found

Сервер не нашёл ресурс по указанному адресу.

405

Method Not Allowed

HTTP-метод запроса не поддерживается для этого ресурса — например, POST на страницу, принимающую только GET.

408

Request Timeout

Сервер не дождался полного запроса от клиента за отведённое время.

409

Conflict

Запрос конфликтует с текущим состоянием ресурса — например, при попытке создать уже существующую запись.

410

Gone

Ресурс раньше существовал, но был окончательно удалён и не появится снова — в отличие от 404 это осознанный факт.

413

Payload Too Large

Тело запроса превышает лимит, который сервер готов принять.

415

Unsupported Media Type

Сервер не умеет обрабатывать формат данных, указанный в запросе.

422

Unprocessable Entity

Запрос синтаксически верен, но данные внутри не прошли валидацию по смыслу.

429

Too Many Requests

Превышен лимит числа запросов за период времени — сработал rate limiting.

500

Internal Server Error

Общая ошибка на стороне сервера без уточнения причины — что-то пошло не так в его коде.

501

Not Implemented

Сервер не поддерживает функциональность, нужную для выполнения запроса.

502

Bad Gateway

Сервер, работавший как прокси или шлюз, получил некорректный ответ от вышестоящего сервера.

503

Service Unavailable

Сервер временно не может обработать запрос — перегружен или на обслуживании.

504

Gateway Timeout

Сервер-шлюз не дождался ответа от вышестоящего сервера за отведённое время.

Что означает первая цифра кода

Коды ответа HTTP разбиты на пять классов по первой цифре: 1xx — информационные (запрос ещё обрабатывается), 2xx — успех, 3xx — редирект на другой адрес, 4xx — ошибка на стороне клиента (неверный запрос, нет доступа, ресурс не найден), 5xx — ошибка на стороне сервера. По одной этой цифре уже понятно, в какую сторону смотреть при отладке, даже не читая точное название кода.

Зачем нужны коды, если есть текст ошибки

Текст сообщения об ошибке пишет каждый сервер по-своему, а числовой код — часть стандарта HTTP и одинаков везде. Скрипт, который обрабатывает ответ сервера, проверяет именно код, а не текст: это предсказуемо работает независимо от языка интерфейса и конкретной формулировки. Разница между похожими кодами тоже не случайна — например, 401 означает «сначала войдите», а 403 — «вы вошли, но сюда всё равно нельзя».

Похожие инструменты

Другие полезные инструменты из той же категории

Часто задаваемые вопросы

401 значит «сначала пройдите аутентификацию» — сервер не понимает, кто вы. 403 значит «вы опознаны, но доступ к этому ресурсу всё равно запрещён» — дело не в личности, а в правах.

301 — постоянный редирект: старый адрес больше не будет использоваться, поисковики переносят вес страницы на новый URL. 302 — временный: исходный адрес остаётся действующим, просто сейчас ресурс отдаётся с другого места.

Это ошибки на стороне сервера, а не в вашем запросе. 500 — сервер сломался в своём коде, 502 — сервер-посредник получил некорректный ответ от вышестоящего сервера. Со стороны браузера или клиента это не чинится, нужно смотреть логи сервера.