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

Добавить комментарий

 Латинские или кириллические буквы, не меньше 3 и не больше 30 символов.
 E-mail никто не увидит.