Коды ответа HTTP

Коды ответа HTTP

Коды ответа (состояния) HTTP показывают, был ли успешно выполнен конкретный HTTP-запрос. Коды делятся на пять классов:

Перечисленные ниже коды состояния определены RFC 9110.

Примечание: Если вы получили код ответа (состояния), которого нет в данном списке, в таком случае он является не стандартизированным кодом ответа.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Информационные ответы

  • 100 Continue
    Этот промежуточный ответ указывает, что запрос успешно принят, и клиент может продолжать присылать запросы либо проигнорировать этот ответ, если запрос был завершён.
  • 101 Switching Protocols
    Этот код посылается в ответ на запрос клиента с заголовком Upgrade. Он указывает, что сервер переключился на другой протокол, который был указан в заголовке.
  • 102 Processing 
    Этот код указывает на то, что сервер получил запрос и обрабатывает его, но ответа пока нет.
  • 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 
    Используется, чтобы предоставить информацию о нескольких ресурсах в тех случаях, когда для каждого из них может быть применено разное состояние (статус). Таким образом, он собирает информацию о нескольких ресурсах и их индивидуальных состояниях и предоставляет их в одном ответе.
  • 208 Already Reported
    Сервер сообщает клиенту, что некоторая информация уже была передана ранее и больше не нуждается в повторной передаче. Это полезно, чтобы избежать излишней передачи одних и тех же данных, особенно когда речь идет о множестве связанных ресурсов на сервере. Клиент может использовать этот ответ, чтобы оптимизировать свои запросы и избежать ненужных повторных передач данных.
  • 226 IM Used
    Сервер успешно обработал GET-запрос, который был отправлен, чтобы получить информацию о ресурсе. Ответ, который клиент получает от сервера, представляет собой информацию о текущем состоянии ресурса после выполнения одной или нескольких операций над ним.

Сообщения о перенаправлениях

  • 300 Multiple Choices
    Запрос имеет более одного возможного ответа. Клиент должен выбрать один из них. (Стандартного способа выбора одного из ответов не существует).
  • 301 Moved Permanently
    URL запрашиваемого ресурса был изменен навсегда. Новый URL будет предоставлен в ответе.
  • 302 Found
    Этот код ответа означает, что URI запрашиваемого ресурса был временно изменен. В будущем возможны дальнейшие изменения URI. Поэтому в последующих запросах клиент должен продолжать использовать измененный URI, который был предоставлен в ответе на данный запрос.
  • 303 See Other
    Сервер отправил этот ответ, чтобы перенаправить клиента на получение запрашиваемого ресурса по другому URI c запросом GET.
  • 304 Not Modified
    Этот ответ используется для целей кэширования. Он сообщает клиенту, что запрашиваемый ресурс не был изменен, поэтому клиент может продолжать использовать кэшированную версию ответа.
  • 307 Temporary Redirect
    Сервер посылает этот ответ, чтобы перенаправить клиента на получение запрашиваемого ресурса по другому URI с тем же методом, который был использован в предыдущем запросе. Он имеет ту же семантику, что и HTTP-ответ 302 Found, за исключением того, клиент не должен менять используемый HTTP-метод: если в первом запросе был использован метод POST, то во втором запросе также должен быть использован POST.
  • 308 Permanent Redirect
    Это означает, что ресурс теперь постоянно находится на другом URI, указанном в заголовке Location: HTTP Response header. Этот код имеет ту же семантику, что и код ответа 301 Moved Permanently HTTP, за исключением того, что клиент не должен изменять используемый метод HTTP: если в первом запросе использовался POST, то и во втором запросе должен использоваться POST.

Ответы на клиентские ошибки

  • 400 Bad Request
    Сервер не может или не хочет обрабатывать запрос из-за ошибок клиента (например, неправильный синтаксис запроса).
  • 401 Unauthorized
    Хотя в стандарте HTTP указано слово “не авторизован”, семантически этот ответ означает “не аутентифицирован”. Это означает, что клиент должен пройти аутентификацию, чтобы получить запрошенный ответ.
  • 402 Payment Required
    Этот код ответа зарезервирован для будущего использования. Первоначальной целью создания этого кода было его использование в цифровых платежных системах. Однако, на данный момент он не используется.
  • 403 Forbidden
    Клиент не имеет прав доступа к содержимому, т.е. он не авторизован, поэтому сервер отказывается предоставить запрашиваемый ресурс.
  • 404 Not Found
    Сервер не может найти запрашиваемый ресурс. В браузере это означает, что URL не распознан. В API это также может означать, что эндпоинт действителен, но сам ресурс не существует. Этот код ответа, вероятно, наиболее известен, поскольку часто встречается в Интернете.
  • 405 Method Not Allowed
    Сервер знает о запрашиваемом методе, но он не может быть использован. Например, API может не разрешать вызов DELETE для удаления ресурса.
  • 406 Not Acceptable
    Этот ответ отправляется, когда веб-сервер, выполнив server-driven content negotiation, не находит контента, соответствующего критериям, заданным клиентом.
  • 407 Proxy Authentication Required
    Этот ответ аналогичен 401 Unauthorized, но требует аутентификации прокси.
  • 408 Request Timeout
    Этот ответ посылается некоторыми серверами при неработающем соединении, даже без какого-либо предшествующего запроса со стороны клиента. Он означает, что сервер хочет завершить неиспользуемое соединение. Этот ответ используется гораздо чаще, поскольку некоторые браузеры, например Chrome, Firefox 27+ или IE9, используют механизмы предварительного соединения HTTP для ускорения серфинга. Также следует отметить, что некоторые серверы просто закрывают соединение без отправки этого сообщения.
  • 409 Conflict
    Этот ответ отправляется, когда запрос противоречит текущему состоянию сервера.
  • 410 Gone
    Этот ответ отправляется, когда запрашиваемый контент было окончательно удален с сервера без адреса пересылки. Клиенты должны удалить свои кэши и ссылки на ресурс.
  • 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
    Сервер, на который был отправлен запрос, не может предоставить ответ на этот запрос, потому что он не настроен для обработки данного типа запросов или не понимает их.
  • 422 Unprocessable Content 
    Запрос был правильно сформулирован, но не смог быть выполнен из-за семантических ошибок.
  • 423 Locked 
    Ресурс, к которому осуществляется доступ, заблокирован.
  • 424 Failed Dependency 
    Текущий запрос завершился неудачей из-за проблемы или ошибки, которая произошла в предыдущем запросе.
  • 425 Too Early
    Сервер отказывается выполнять запрос, потому что есть риск, что этот запрос может быть повторно отправлен, что может привести к нежелательным или небезопасным последствиям.
  • 426 Upgrade Required
    Сервер отказывается выполнять запрос по текущему протоколу, но готов сделать это после того, как клиент перейдет на другой протокол. Сервер посылает заголовок Upgrade в ответе 426, чтобы указать требуемый протокол.
  • 428 Precondition Required
    Этот ответ предназначен для предотвращения проблемы “потери обновления” (lost update), когда клиент получает состояние ресурса c помощью 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
    Сервер не готов к обработке запроса. Обычно это связано с тем, что сервер находится на техническом обслуживании или перегружен. Обратите внимание, что вместе с этим ответом должна быть отправлена страница с объяснением проблемы. Этот ответ следует использовать временно, а HTTP-заголовок Retry-After должен, по возможности, содержать предполагаемое время восстановления работоспособности сервиса.
  • 504 Gateway Timeout
    Этот ответ об ошибке выдается, когда сервер выступает в роли шлюза и не может получить ответ вовремя.
  • 505 HTTP Version Not Supported
    Версия HTTP, используемая в запросе, не поддерживается сервером.
  • 506 Variant Also Negotiates
    Это означает, что на сервере произошла ошибка из-за неправильной конфигурации.
  • 507 Insufficient Storage
    Это означает, что сервер не может выполнить определенный метод (например, PUT или POST) на запрашиваемом ресурсе, потому что у него нет возможности сохранить информацию, которая необходима для успешного завершения этого запроса. Сервер не может обработать запрос, так как у него не хватает места или ресурсов для сохранения необходимых данных или представления.
  • 508 Loop Detected
    Сервер обнаружил бесконечный цикл при обработке запроса.
  • 510 Not Extended
    Это означает, что для выполнения запроса серверу необходимы дополнительные функциональные расширения или возможности, которые в данный момент отсутствуют.
  • 511 Network Authentication Required
    Указывает на необходимость аутентификации клиента для получения доступа к сети.

Перевод статьи «HTTP response status codes».

2 комментария к “Коды ответа HTTP”

  1. Пингбэк: Как запускать параллельное выполнение тестов в Appium?

  2. Пингбэк: Тестирование API в Cypress

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *