Коды состояния ответа HTTP указывают, был ли успешно выполнен конкретный HTTP -запрос. Ответы сгруппированы в пять классов:
- Информационные ответы (
100
–199
) - Успешные ответы (
200
-299
) - Сообщения о перенаправлении (
300
-399
) - Ответы клиента на ошибку (
400
–499
) - Ответы сервера на ошибку (
500
–599
)
Приведенные ниже коды состояния определены в разделе 10 RFC 2616 . Вы можете найти обновленную спецификацию в RFC 7231 .
Примечание. Если вы получили ответ, которого нет в этом списке — это нестандартный ответ, возможно, настроенный для программного обеспечения конкретного сервера.
Информационные ответы
100 Continue
Этот промежуточный ответ указывает, что клиент должен продолжить запрос или проигнорировать ответ, если запрос уже завершен.
101 Switching Protocols
Этот код отправляется в ответ на Upgrade
заголовок запроса от клиента и указывает протокол, на который переключается сервер.
102 Processing( веб-DAV )
Этот код указывает на то, что сервер получил и обрабатывает запрос, но ответа пока нет.
103 Early Hints
Этот код состояния в первую очередь предназначен для использования с Link
заголовком, позволяя пользовательскому агенту начать предварительную загрузку ресурсов, пока сервер готовит ответ.
Успешные ответы
200 OK
Запрос выполнен. Значение результата «успех» зависит от метода HTTP:
GET
: Ресурс был получен и передан в теле сообщения.HEAD
: заголовки представления включаются в ответ без тела сообщения.PUT
илиPOST
: ресурс, описывающий результат действия, передается в теле сообщения.TRACE
: Тело сообщения содержит сообщение запроса, полученное сервером.
201 Created
Запрос выполнен успешно, и в результате был создан новый ресурс. Обычно это ответ, отправляемый после POST
запросов или некоторых PUT
запросов.
202 Accepted
Запрос получен, но еще не исполнен. Это ни к чему не обязывает, поскольку в HTTP нет способа отправить асинхронный ответ позже, указывающий результат запроса. Он предназначен для случаев, когда другой процесс или сервер обрабатывает запрос, или для пакетной обработки.
203 Non-Authoritative Information
Этот код ответа означает, что возвращенные метаданные не совсем совпадают с теми, что доступны на исходном сервере, а получены из локальной или сторонней копии. В основном это используется для зеркал или резервных копий другого ресурса. За исключением этого конкретного случая, 200 OK
ответ предпочтительнее этого статуса.
204 No Content
Для этого запроса нет контента для отправки, но заголовки могут быть полезны. Пользовательский агент может обновить свои кэшированные заголовки для этого ресурса новыми.
205 Reset Content
Сообщает пользовательскому агенту сбросить документ, отправивший этот запрос.
206 Partial Content
Этот код ответа используется, когда Range
заголовок отправляется от клиента для запроса только части ресурса.
207 Multi-Status (веб-DAV)
Передает информацию о нескольких ресурсах для ситуаций, когда могут быть уместны несколько кодов состояния.
208 Already Reported (веб-DAV)
Используется внутри <dav:propstat>
элемента ответа, чтобы избежать повторного перечисления внутренних членов нескольких привязок к одной и той же коллекции.
226 IM Used (Дельта-кодирование HTTP)
Сервер выполнил GET
запрос на ресурс, и ответ является представлением результата одной или нескольких манипуляций с экземпляром, примененных к текущему экземпляру.
Сообщения о перенаправлении
300 Multiple Choices
Запрос имеет более одного возможного ответа. Пользовательский агент или пользователь должны выбрать один из них. (Не существует стандартизированного способа выбора одного из ответов, но рекомендуются HTML-ссылки на возможные варианты, чтобы пользователь мог выбрать.)
301 Moved Permanently
URL запрошенного ресурса был изменен навсегда. Новый URL-адрес дается в ответе.
302 Found
Этот код ответа означает, что URI запрошенного ресурса был временно изменен . Дальнейшие изменения в URI могут быть внесены в будущем. Следовательно, этот же URI должен использоваться клиентом в будущих запросах.
303 See Other
Сервер отправил этот ответ, чтобы указать клиенту получить запрошенный ресурс по другому URI с помощью запроса GET.
304 Not Modified
Это используется для целей кэширования. Он сообщает клиенту, что ответ не был изменен, поэтому клиент может продолжать использовать ту же кэшированную версию ответа.
305 Use Proxy (Устаревший)
Определено в предыдущей версии спецификации HTTP, чтобы указать, что запрошенный ответ должен быть доступен через прокси. Он устарел из-за проблем безопасности, связанных с внутренней конфигурацией прокси-сервера.
306 unused
Этот код ответа больше не используется; он просто зарезервирован. Он использовался в предыдущей версии спецификации HTTP/1.1.
307 Temporary Redirect
Сервер отправляет этот ответ, чтобы указать клиенту получить запрошенный ресурс по другому URI тем же методом, который использовался в предыдущем запросе. Он имеет ту же семантику, что и 302 Found
код ответа HTTP, за исключением того, что пользовательский агент не должен изменять используемый метод HTTP: если POST
в первом запросе использовалось a POST
, во втором запросе должно использоваться a.
308 Permanent Redirect
Это означает, что ресурс теперь постоянно находится по другому URI, указанному в Location:
заголовке HTTP-ответа. Он имеет ту же семантику, что и 301 Moved Permanently
код ответа HTTP, за исключением того, что пользовательский агент не должен изменять используемый метод HTTP: если POST
в первом запросе использовалось a POST
, во втором запросе должно использоваться a.
Ответы клиента на ошибку
400 Bad Request
Сервер не может или не будет обрабатывать запрос из-за чего-то, что воспринимается как ошибка клиента (например, искаженный синтаксис запроса, неверный кадр сообщения запроса или вводящая в заблуждение маршрутизация запроса).
401 Unauthorized
Хотя стандарт HTTP определяет «неавторизованный», семантически этот ответ означает «не прошедший проверку подлинности». То есть клиент должен аутентифицировать себя, чтобы получить запрошенный ответ.
402 Payment Required (Экспериментальный)
Этот код ответа зарезервирован для использования в будущем. Первоначальной целью создания этого кода было использование его для цифровых платежных систем, однако этот код состояния используется очень редко, и не существует стандартного соглашения.
403 Forbidden
У клиента нет прав доступа к контенту; то есть он неавторизован, поэтому сервер отказывается предоставить запрошенный ресурс. В отличие от 401 Unauthorized
, личность клиента известна серверу.
404 Not Found
Сервер не может найти запрошенный ресурс. В браузере это означает, что URL-адрес не распознан. В API это также может означать, что конечная точка действительна, но самого ресурса не существует. Серверы также могут отправлять этот ответ вместо того 403 Forbidden
, чтобы скрывать существование ресурса от неавторизованного клиента. Этот код ответа, вероятно, наиболее известен из-за его частого появления в Интернете.
405 Method Not Allowed
Метод запроса известен серверу, но не поддерживается целевым ресурсом. Например, API может не разрешить вызов DELETE
для удаления ресурса.
406 Not Acceptable
Этот ответ отправляется, когда веб-сервер после согласования контента на основе сервера не находит контента, соответствующего критериям, заданным агентом пользователя.
407 Proxy Authentication Required
Это похоже на 401 Unauthorized
но аутентификация необходима для выполнения прокси.
408 Request Timeout
Этот ответ отправляется некоторыми серверами при бездействующем соединении, даже без какого-либо предварительного запроса со стороны клиента. Это означает, что сервер хотел бы отключить это неиспользуемое соединение. Этот ответ используется гораздо чаще, поскольку некоторые браузеры, такие как Chrome, Firefox 27+ или IE9, используют механизмы предварительного соединения HTTP для ускорения работы в Интернете. Также обратите внимание, что некоторые серверы просто отключают соединение, не отправляя это сообщение.
409 Conflict
Этот ответ отправляется, когда запрос конфликтует с текущим состоянием сервера.
410 Gone
Этот ответ отправляется, когда запрошенный контент был безвозвратно удален с сервера без адреса пересылки. Ожидается, что клиенты удалят свои кеши и ссылки на ресурс. Спецификация HTTP предполагает, что этот код состояния будет использоваться для «ограниченных по времени рекламных услуг». API не должны чувствовать себя обязанными указывать ресурсы, которые были удалены, с этим кодом состояния.
411 Length Required
Сервер отклонил запрос, потому что Content-Length
поле заголовка не определено, а сервер требует его.
412 Precondition Failed
Клиент указал в своих заголовках предварительные условия, которым сервер не соответствует.
413 Payload Too Large
Объект запроса превышает ограничения, установленные сервером. Сервер может закрыть соединение или вернуть Retry-After
поле заголовка.
414 URI Too Long
URI, запрошенный клиентом, длиннее, чем сервер готов интерпретировать.
415 Unsupported Media Type
Медиаформат запрошенных данных не поддерживается сервером, поэтому сервер отклоняет запрос.
416 Range Not Satisfiable
Диапазон, указанный Range
полем заголовка в запросе, не может быть выполнен. Возможно, диапазон выходит за пределы размера данных целевого URI.
417 Expectation Failed
Этот код ответа означает, что ожидание, указанное в Expect
поле заголовка запроса, не может быть выполнено сервером.
418 I'm a teapot
Сервер отказывается варить кофе в чайнике.
421 Misdirected Request
Запрос был направлен на сервер, который не может дать ответ. Это может быть отправлено сервером, который не настроен для создания ответов для комбинации схемы и полномочий, включенных в URI запроса.
422 Unprocessable Entity (веб-DAV)
Запрос был правильно сформирован, но не мог быть выполнен из-за семантических ошибок.
423 Locked (веб-DAV)
Ресурс, к которому осуществляется доступ, заблокирован.
424 Failed Dependency (веб-DAV)
Запрос не выполнен из-за сбоя предыдущего запроса.
425 Too Early Экспериментальный
Указывает, что сервер не хочет рисковать обработкой запроса, который может быть воспроизведен.
426 Upgrade Required
Сервер отказывается выполнять запрос с использованием текущего протокола, но может сделать это после того, как клиент перейдет на другой протокол. Сервер отправляет Upgrade
заголовок в ответе 426, чтобы указать требуемый(е) протокол(ы).
428 Precondition Required
Исходный сервер требует, чтобы запрос был условным. Этот ответ предназначен для предотвращения проблемы «потерянных обновлений», когда клиент получает GET
состояние ресурса, изменяет его и PUT
отправляет обратно на сервер, когда тем временем третья сторона изменила состояние на сервере, что приводит к конфликту.
429 Too Many Requests
Пользователь отправил слишком много запросов за заданный промежуток времени ("ограничение скорости").
431 Request Header Fields Too Large
Сервер не хочет обрабатывать запрос, потому что его поля заголовка слишком велики. Запрос может быть отправлен повторно после уменьшения размера полей заголовка запроса.
451 Unavailable For Legal Reasons
Пользовательский агент запросил ресурс, который не может быть предоставлен по закону, например веб-страницу, подвергнутую цензуре со стороны правительства.
Ответы сервера на ошибку
500 Internal Server Error
Сервер столкнулся с ситуацией, которую он не знает, как с ней справиться.
501 Not Implemented
Метод запроса не поддерживается сервером и не может быть обработан. Единственными методами, которые должны поддерживать серверы (и, следовательно, которые не должны возвращать этот код), являются GET
и HEAD
.
502 Bad Gateway
Этот ответ об ошибке означает, что сервер, работая в качестве шлюза для получения ответа, необходимого для обработки запроса, получил недопустимый ответ.
503 Service Unavailable
Сервер не готов обработать запрос. Распространенными причинами являются сервер, который отключен для обслуживания или перегружен. Обратите внимание, что вместе с этим ответом должна быть отправлена удобная страница с объяснением проблемы. Этот ответ следует использовать для временных условий, а Retry-After
заголовок HTTP должен, по возможности, содержать предполагаемое время до восстановления службы. Веб-мастер также должен позаботиться о заголовках, связанных с кэшированием, которые отправляются вместе с этим ответом, поскольку эти временные ответы обычно не следует кэшировать.
504 Gateway Timeout
Этот ответ об ошибке выдается, когда сервер действует как шлюз и не может вовремя получить ответ.
505 HTTP Version Not Supported
Версия HTTP, используемая в запросе, не поддерживается сервером.
506 Variant Also Negotiates
На сервере произошла внутренняя ошибка конфигурации: выбранный вариантный ресурс сам настроен на участие в прозрачном согласовании содержимого и, следовательно, не является надлежащей конечной точкой в процессе согласования.
507 Insufficient Storage (веб-DAV)
Этот метод не может быть выполнен для ресурса, так как сервер не может сохранить представление, необходимое для успешного выполнения запроса.
508 Loop Detected (веб-DAV)
Сервер обнаружил бесконечный цикл при обработке запроса.
510 Not Extended
Для выполнения сервером требуются дальнейшие расширения запроса.
511 Network Authentication Required
Указывает, что клиент должен пройти аутентификацию, чтобы получить доступ к сети.