Коды ответов HTTP
Код ответа (состояния) HTTP показывает, был ли успешно выполнен определённый HTTP запрос.
Коды сгруппированы в 5 классов: информационные, успешные, перенаправления, ошибки клиента и ошибки сервера
Следующая таблица содержит список всех кодов и их значения:
| Код ответа | Название | Описание | Версия HTTP |
|---|---|---|---|
| Информационные | |||
| 100 | Continue | “Продолжить”. Этот промежуточный ответ указывает, что запрос успешно принят и клиент может продолжать присылать запросы либо проигнорировать этот ответ, если запрос был завершён. | Только HTTP/1.1 |
| 101 | Switching Protocol | “Переключение протокола”. Этот код присылается в ответ на запрос клиента, содержащий заголовок Upgrade:, и указывает, что сервер переключился на протокол, который был указан в заголовке. Эта возможность позволяет перейти на несовместимую версию протокола и обычно не используется. |
Только HTTP/1.1 |
| 102 | Processing | “В обработке”. Этот код указывает, что сервер получил запрос и обрабатывает его, но обработка ещё не завершена. | Только HTTP/1.1 |
| 103 | Early Hints | “Ранние подсказки”. В ответе сообщаются ресурсы, которые могут быть загружены заранее, пока сервер будет подготавливать основной ответ. RFC 8297 (Experimental). | Только HTTP/1.1 |
| Успешные | |||
| 200 | OK | “Успешно”. Запрос успешно обработан. Что значит “успешно”, зависит от метода HTTP, который был запрошен: GET: “ПОЛУЧИТЬ”. Запрошенный ресурс был найден и передан в теле ответа. HEAD: “ЗАГОЛОВОК”. Заголовки переданы в ответе. POST: “ПОСЫЛКА”. Ресурс, описывающий результат действия сервера на запрос, передан в теле ответа. TRACE: “ОТСЛЕЖИВАТЬ”. Тело ответа содержит тело запроса полученного сервером. | HTTP/0.9 и выше |
| 201 | Created | “Создано”. Запрос успешно выполнен и в результате был создан ресурс. Этот код обычно присылается в ответ на запрос PUT “ПОМЕСТИТЬ”. | HTTP/0.9 и выше |
| 202 | Accepted | “Принято”. Запрос принят, но ещё не обработан. Не поддерживаемо, т.е., нет способа с помощью HTTP отправить асинхронный ответ позже, который будет показывать итог обработки запроса. Это предназначено для случаев, когда запрос обрабатывается другим процессом или сервером, либо для пакетной обработки. | HTTP/0.9 и выше |
| 203 | Non-Authoritative Information | “Информация не авторитетна”. Этот код ответа означает, что информация, которая возвращена, была предоставлена не от исходного сервера, а из какого-нибудь другого источника. Во всех остальных ситуациях более предпочтителен код ответа 200 OK. | HTTP/0.9 и 1.1 |
| 204 | No Content | “Нет содержимого”. Нет содержимого для ответа на запрос, но заголовки ответа, которые могут быть полезны, присылаются. Клиент может использовать их для обновления кешированных заголовков полученных ранее для этого ресурса. | HTTP/0.9 и выше |
| 205 | Reset Content | “Сбросить содержимое”. Этот код присылается, когда запрос обработан, чтобы сообщить клиенту, что необходимо сбросить отображение документа, который прислал этот запрос. | Только HTTP/1.1 |
| 206 | Partial Content | “Частичное содержимое”. Этот код ответа используется, когда клиент присылает заголовок диапазона, чтобы выполнить загрузку отдельно, в несколько потоков. | Только HTTP/1.1 |
| 207 | Muiti-Status | Передаёт информацию о нескольких ресурсах в случаях, когда могут быть уместны несколько кодов состояния. | WebDAV |
| 208 | Already Reported | Используется внутри элемента ответа |
WebDAV |
| 226 | IM Used | Используется для ответа на запросы GET в тех случаях, когда сервер хочет отправить только изменённую часть ресурса (то есть «дельту»). | HTTP Delta Encoding |
| Сообщения о перенаправлениях | |||
| 300 | Multiple Choice | “Множественный выбор”. Этот код ответа присылается, когда запрос имеет более чем один из возможных ответов. И User-agent или пользователь должен выбрать один из ответов. Не существует стандартизированного способа выбора одного из полученных ответов. | HTTP/1.0 и выше |
| 301 | Moved Permanently | “Перемещён на постоянной основе”. Этот код ответа значит, что URI запрашиваемого ресурса был изменён. Возможно, новый URI будет предоставлен в ответе. | HTTP/0.9 и выше |
| 302 | Found | “Найдено”. Этот код ответа значит, что запрошенный ресурс временно изменён. Новые изменения в URI могут быть доступны в будущем. Таким образом, этот URI, должен быть использован клиентом в будущих запросах. | HTTP/0.9 и выше |
| 303 | See Other | “Просмотр других ресурсов”. Этот код ответа присылается, чтобы направлять клиента для получения запрашиваемого ресурса в другой URI с запросом GET. | HTTP/0.9 и 1.1 |
| 304 | Not Modified | “Не модифицировано”. Используется для кеширования. Это код ответа значит, что запрошенный ресурс не был изменён. Таким образом, клиент может продолжать использовать кешированную версию ответа. | HTTP/0.9 и выше |
| 305 | Use Proxy | “Использовать прокси”. Это означает, что запрошенный ресурс должен быть доступен через прокси. Этот код ответа в основном не поддерживается из соображений безопасности. | Только HTTP/1.1 |
| 306 | Switch Proxy | Больше не использовать. Изначально подразумевалось, что ” последующие запросы должны использовать указанный прокси.” | Только HTTP/1.1 |
| 307 | Temporary Redirect | “Временное перенаправление”. Сервер отправил этот ответ, чтобы клиент получил запрошенный ресурс на другой URL-адрес с тем же методом, который использовал предыдущий запрос. Данный код имеет ту же семантику, что код ответа 302 Found, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если в первом запросе использовался POST, то во втором запросе также должен использоваться POST. |
Только HTTP/1.1 |
| 308 | Permanent Redirect | “Перенаправление на постоянной основе”. Это означает, что ресурс теперь постоянно находится в другом URI, указанном в заголовке Location: HTTP Response. Данный код ответа имеет ту же семантику, что и код ответа 301 Moved Permanently, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если POST использовался в первом запросе, POST должен использоваться и во втором запросе. Примечание: Это экспериментальный код ответа, Спецификация которого в настоящее время находится в черновом виде. |
draft-reschke-http-status-308 |
| Клиентские | |||
| 400 | Bad Request | “Плохой запрос”. Этот ответ означает, что сервер не понимает запрос из-за неверного синтаксиса. | HTTP/0.9 и выше |
| 401 | Unauthorized | “Неавторизованно”. Для получения запрашиваемого ответа нужна аутентификация. Статус похож на статус 403, но,в этом случае, аутентификация возможна. | HTTP/0.9 и выше |
| 402 | Payment Required | “Необходима оплата”. Этот код ответа зарезервирован для будущего использования. Первоначальная цель для создания этого когда была в использовании его для цифровых платёжных систем(на данный момент не используется). | HTTP/0.9 и 1.1 |
| 403 | Forbidden | “Запрещено”. У клиента нет прав доступа к содержимому, поэтому сервер отказывается дать надлежащий ответ. | HTTP/0.9 и выше |
| 404 | Not Found | “Не найден”. Сервер не может найти запрашиваемый ресурс. Код этого ответа, наверно, самый известный из-за частоты его появления в вебе. | HTTP/0.9 и выше |
| 405 | Method Not Allowed | “Метод не разрешён”. Сервер знает о запрашиваемом методе, но он был деактивирован и не может быть использован. Два обязательных метода, GET и HEAD, никогда не должны быть деактивированы и не должны возвращать этот код ошибки. |
Только HTTP/1.1 |
| 406 | Not Acceptable | Этот ответ отсылается, когда веб сервер после выполнения server-driven content negotiation, не нашёл контента, отвечающего критериям, полученным из user agent. | Только HTTP/1.1 |
| 407 | Proxy Authentication Required | Этот код ответа аналогичен коду 401, только аутентификация требуется для прокси сервера. | Только HTTP/1.1 |
| 408 | Request Timeout | Ответ с таким кодом может прийти, даже без предшествующего запроса. Он означает, что сервер хотел бы отключить это неиспользуемое соединение. Этот метод используется все чаще с тех пор, как некоторые браузеры, вроде Chrome и IE9, стали использовать HTTP механизмы предварительного соединения для ускорения сёрфинга (смотрите баг 634278, будущей реализации этого механизма в Firefox). Также учитывайте, что некоторые серверы прерывают соединения не отправляя подобных сообщений. | Только HTTP/1.1 |
| 409 | Conflict | Этот ответ отсылается, когда запрос конфликтует с текущим состоянием сервера. | Только HTTP/1.1 |
| 410 | Gone | Этот ответ отсылается, когда запрашиваемый контент удалён с сервера. | Только HTTP/1.1 |
| 411 | Length Required | Запрос отклонён, потому что сервер требует указание заголовка Content-Length, но он не указан. |
Только HTTP/1.1 |
| 412 | Precondition Failed | Клиент указал в своих заголовках условия, которые сервер не может выполнить | Только HTTP/1.1 |
| 413 | Request Entity Too Large | Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок Retry-After |
Только HTTP/1.1 |
| 414 | Request-URI Too Long | URI запрашиваемый клиентом слишком длинный для того, чтобы сервер смог его обработать | Только HTTP/1.1 |
| 415 | Unsupported Media Type | Медиа формат запрашиваемых данных не поддерживается сервером, поэтому запрос отклонён | Только HTTP/1.1 |
| 416 | Requested Range Not Satisfiable | Диапазон указанный заголовком запроса Range не может быть выполнен; возможно, он выходит за пределы переданного URI |
Только HTTP/1.1 |
| 417 | Expectation Failed | Этот код ответа означает, что ожидание, полученное из заголовка запроса Expect, не может быть выполнено сервером. |
Только HTTP/1.1 |
| 418 | I’m a Teapot | «Шуточный» ответ: сервер отклоняет попытку заварить кофе в чайнике. | |
| 421 | Misdirected Request | Сервер не может дать ответ. Возможно сервер не настроен для комбинации схемы и полномочий, указанных в URI запроса. | |
| 422 | Unprocessable Content | Запрос сформирован правильно, но его невозможно выполнить из-за семантических ошибок. | WebDAV |
| 423 | Locked | Запрашиваемый ресурс заблокирован. | WebDAV |
| 424 | Failed Dependency | Запрос не выполнен из-за проблем в предыдущем запросе. | WebDAV |
| 425 | Too Early (Экспериментальная возможность) | Клиент отправил порцию данных слишком рано, до того как сервер установил безопасное соединение. | |
| 426 | Upgrade Required | Сервер отказывается выполнять запрос с использованием текущего протокола, но может быть готов сделать это после смены протокола на указанный в заголовке ответа Upgrade. | |
| 428 | Precondition Required | Сервер требует, чтобы запрос содержал условия. Этот ответ предназначен для предотвращения проблемы одновременного изменения ресурса несколькими пользователями. | |
| 429 | Too Many Requests | Пользователь отправил слишком много запросов в определённый промежуток времени. | |
| 431 | Request Header Fields Too Large | Сервер не будет обрабатывать запрос, потому что поля заголовка слишком велики. Запрос может быть отправлен повторно после уменьшения размера полей заголовка. | |
| 451 | Unavailable For Legal Reasons | Пользовательский агент запросил ресурс, который не может быть предоставлен по закону, например веб-страницу, подвергнутую цензуре со стороны правительства. | |
| Серверные | |||
| 500 | Internal Server Error | “Внутренняя ошибка сервера”. Сервер столкнулся с ситуацией, которую он не знает как обработать. | HTTP/0.9 и выше |
| 501 | Not Implemented | “Не выполнено”. Метод запроса не поддерживается сервером и не может быть обработан. Единственные методы, которые сервера должны поддерживать (и, соответственно, не должны возвращать этот код) - GET и HEAD. |
HTTP/0.9 и выше |
| 502 | Bad Gateway | “Плохой шлюз”. Эта ошибка означает что сервер, во время работы в качестве шлюза для получения ответа, нужного для обработки запроса, получил недействительный (недопустимый) ответ. | HTTP/0.9 и выше |
| 503 | Service Unavailable | “Сервис недоступен”. Сервер не готов обрабатывать запрос. Зачастую причинами являются отключение сервера или то, что он перегружен. Обратите внимание, что вместе с этим ответом удобная для пользователей(user-friendly) страница должна отправлять объяснение проблемы. Этот ответ должен использоваться для временных условий и Retry-After: HTTP-заголовок должен, если возможно, содержать предполагаемое время до восстановления сервиса. Веб-мастер также должен позаботиться о заголовках, связанных с кешем, которые отправляются вместе с этим ответом, так как эти ответы, связанные с временными условиями, обычно не должны кешироваться. |
HTTP/0.9 и выше |
| 504 | Gateway Timeout | Этот ответ об ошибке предоставляется, когда сервер действует как шлюз и не может получить ответ вовремя. | Только HTTP/1.1 |
| 505 | HTTP Version Not Supported | “HTTP-версия не поддерживается”. HTTP-версия, используемая в запросе, не поддерживается сервером. | Только HTTP/1.1 |
| 506 | Variant Also Negotiates | На сервере произошла внутренняя ошибка конфигурации: выбранный в процессе согласования вариант ресурса не является подходящим. | |
| 507 | Insufficient Storage | Запрос не выполнен, потому что серверу не удалось сохранить данные. | WebDAV |
| 508 | Loop Detected | Запрос не выполнен, потому что на сервере был обнаружен бесконечный цикл обработки данных. | WebDAV |
| 509 | Not Extended | Для выполнения запроса необходимо его расширить. | |
| 511 | Network Authentication Required | Клиенту необходимо пройти аутентификацию для получения доступа к сети. |
Обновлено: 20.01.2024