Коды состояния 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 )