Коды состояния HTTP-ответа
Код состояния — это часть стартовой строки ответного HTTP-сообщения сервера, состоящая из двух элементов: кода ответа и поясняющей фразы. Код ответа представляет собой трехзначное целое число, а поясняющая фраза — короткую строку, объясняющую причину данного ответа.
Информационные (1xx)
Коды состояния, которые информируют о процессе. В HTTP-ответе сервер не должен отправлять тело сообщения.
100 Continue
— сервер дает разрешение клиенту на продолжение отправки заголовков.101 Switching Protocols
— переключение протоколов на сервере, исходя из указаний клиента, переданных в заголовкеUpgrade
.102 Processing
— запрос помещен в обработку, которая будет выполняться какое-то время. Не дает клиенту разорвать соединение даже если будет превышено время ожидания.
Успешные (2xx)
Коды состояния, информирующие об успешной обработке HTTP-запроса.
200 OK
— успех и возврат всех запрошенных данных, если данные были запрошены.201 Created
— если запрос успешен, и создался новый ресурс. Возвращает URI нового ресурса в заголовкеLocation
и в теле сообщения ответа, также может возвращать в теле ответа и другие метаданные ресурса.202 Accepted
— запрос помещен в обработку, клиент может разрывать соединение и не дожидаться окончания отправки сообщения.203 Non-Authoritative Information
— в отличие от200 OK
возвращаемая информация возможна ненадежная (неактуальная), так как получена не из первоисточника (вспомогательного сервера, бекапа и т. д.).204 No Content
— успех и возврат заголовков в ответе без тела.205 Reset Content
— успех и сброс пользовательских данных, тело сообщения не передается.206 Partial Content
— успех частичного запроса, выполненного методом GET, и возврат только части сообщения. Диапазоны частей контента указываются в заголовкеContent-Range
.207 Multi-Status
— успех и возврат результатов более чем одной независимой операции в теле сообщения в XML-формате.208 Already Reported
— возвращается, если уже были запрошены и отправлены ранее результаты с ответом206 Multi-Status
.226 IM Used
— успех и возврат данных, исходя из параметров, переданных в заголовкеA-IM
.
Перенаправления (3xx)
Коды состояния, сообщающие клиенту что нужно совершить запрос на другой URI, который указывается в заголовке Location
ответного сообщения. Во всех случаях перенаправленный запрос должен осуществляться тем же методом, что и исходный, кроме случая, если по исходному запросу вернулся ответ 303 See Other
.
300 Multiple Choices
— в ответе возвращается перечисление альтернативных вариантов для перенаправления, выбор может производиться пользователем или клиентом автоматически.301 Moved Permanently
— информирует об окончательном переносе запрашиваемого ресурса на другой URI.302 Found
или302 Moved Temporarily
— информирует о временном переносе запрашиваемого ресурса на другой URI.303 See Other
— информирует о том, что нужно совершать перенаправление только методомGET
.304 Not Modified
— информирует о том, что ресурс не был изменен с конкретного момента, будет возвращен только если исходный запрос был произведен методомGET
с содержанием заголовкаIf-Modified-Since
илиIf-None-Match
.305 Use Proxy
— информирует о том, что запрос должен производиться через прокси-сервер, возвращается только исходным сервером.307 Temporary Redirect
— аналогичен302
коду, но в отличие от302
гарантирует, что метод и тело не будут изменены при перенаправлении.308 Permanent Redirect
— аналогичен301
коду, но в отличие от301
гарантирует, что метод и тело не будут изменены при перенаправлении.
Ошибки клиента (4xx)
Коды состояния, указывающие на ошибку со стороны клиента. Если запрос не произведен методом HEAD
, то в теле ответа сервера должно присутствовать описание произошедшей ошибки.
400 Bad Request
— ошибка синтаксиса в запросе.401 Unauthorized
— для обработки запроса требуется аутентификация.402 Payment Required
— для обработки запроса требуется оплата.403 Forbidden
— доступ запрещен, запрос не может быть обработан.404 Not Found
— запрашиваемый ресурс по-указанному URI не найден.405 Method Not Allowed
— метод запроса недопустим для запрашиваемого ресурса, к ответу сервера необходимо добавить заголовокAllow
с допустимыми методами.406 Not Acceptable
— указанный URI не соответствует передаваемым параметрам заголовка запроса, если это неHEAD-запрос
, то в ответе нужно перечислить необходимые параметры.407 Proxy Authentication Required
— похож на403 Forbidden
, только авторизоваться нужно на прокси-сервере, а не на исходном сервере.408 Request Timeout
— истекло время ожидания окончания процедуры передачи данных клиента серверу.409 Conflict
— конфликт происходит когда одномоментно пришли запросы на изменение ресурса от нескольких клиентов.410 Gone
— запрашиваемый ресурс существовал ранее, но был удален.411 Length Required
— для обработки запроса, сервер ожидает, что будет передан заголовокContent-Length
, а в текущем запросе он отсутствует.412 Precondition Failed
— если в запросе был передан заголовокIf-Match
, и все указанные в нем условия не выполнились.413 Payload Too Large
— размер содержимого тела запроса чересчур большой для запрашиваемого ресурса.414 URI Too Long
— длина указанного URI в запросе чересчур большая для запрашиваемого ресурса.415 Unsupported Media Type
— запрашиваемый ресурс не может обработать указанный в запросе тип данных.416 Range Not Satisfiable
— переданный диапазон в заголовке запросаRange
некорректен и не был передан заголовокIf-Range
.417 Expectation Failed
— переданное значение в заголовке запросаExpect
некорректно для ресурса.418 I’m a teapot
— первоапрельская шутка).421 Misdirected Request
— произошло перенаправление на сервер, который не в состоянии вернуть ответ.422 Unprocessable Entity
— логическая ошибка содержимого тела запроса.423 Locked
— невозможно обработать запрос, запрашиваемый ресурс заблокирован.424 Failed Dependency
— невозможно обработать запрос, так как одна из зависимостей запрашиваемого ресурса заблокирована.426 Upgrade Requiredy
— сервер запрашивает обновление соединения до SSL, а клиент не поддерживается SSL.428 Precondition Required
— клиент обязательно должен передать заголовокIf-Match
в запросе для запрашиваемого ресурса.429 Too Many Requests
— клиент запрашивает ресурс слишком часто за короткий промежуток времени, сервер в ответе может вернуть заголовокRetry-After
с информацией когда можно будет повторно запросить ресурс.431 Request Header Fields Too Large
— длина заголовков в запросе чересчур большая для запрашиваемого ресурса.451 Unavailable For Legal Reasons
— запрашиваемый ресурс недоступен по юридическим причинам.
Ошибки сервера (5xx)
Коды состояния, указывающие на ошибку со стороны сервера. Если запрос не произведен методом HEAD
, то в теле ответа сервера должно присутствовать описание произошедшей ошибки.
500 Internal Server Error
— внутренняя фатальная ошибка сервера, которая не дает обработать запрос клиента.501 Not Implemented
— серверу не известен метод, по которому производится запрос.502 Bad Gateway
— ошибка посредника (прокси-сервера), который получил некорректное ответное сообщение от следующего сервера из цепочки.503 Service Unavailable
— сервер временно недоступен (техобслуживание, перегрузка и т.д.), в ответе может вернуть заголовокRetry-After
с информацией когда можно будет повторно запросить ресурс.504 Gateway Timeout
— ошибка посредника (прокси-сервера), истекло время ожидания окончания ответного сообщения от следующего сервера из цепочки.505 HTTP Version Not Supported
— неподдерживаемая версия протокола, по которой запрошен сервер.507 Insufficient Storage
— на сервере недостаточно места, чтобы обработать текущий запрос.508 Loop Detected
— невозможно закончить обработку запроса, так как сервер столкнулся с бесконечным циклом.510 Not Extended
— сервером не поддерживается расширение, необходимое для обработки запроса.511 Network Authentication Required
— ответ возвращает прокси-сервер, который сообщает, что необходимо вначале пройти авторизацию в сети. Тело ответного сообщения может содержать форму авторизации или редирект на нее.
Коментарии ( 0 )