Найти тему
Куакушонок QA

Коды ответов HTTP

Коды делятся на 5 классов:

  1. Информационные 100 - 199
  2. Успешные 200 - 299
  3. Перенаправления 300 - 399
  4. Клиентские ошибки 400 - 499
  5. Серверные ошибки 500 - 599
Потоки данных между сервером и клиентами
Потоки данных между сервером и клиентами

Далее рассмотрим самые распространенные коды ответов HTTP:

  • 100 (Continue) "Продолжить"

Промежуточный ответ, указывает на то, что запрос был успешно получен и принят сервером. Клиент может продолжать присылать запросы, или проигнорировать этот ответ, если запрос был завершён.

  • 101 (Switching Protocol) "Переключение протокола"

Ответ на запрос клиента, содержащий заголовок 'Upgrade'. Указывающий, что сервер перешел на протокол указанный в заголовке. Обычно это необходимо для перехода на несовместимую версию протокола, хотя такая возможность редко используется.

  • 102 (Processing) "В обработке"

Сервер получил запрос и находится в процессе его обработки (обработка еще не завершена).

  • 103 (Early Hints) "Ранние подсказки"

В ответе представлены ресурсы, которые можно загрузить заранее, до того момента, когда сервер начнет готовить основной ответ. Это позволяет ускорить процесс обработки запроса и сократить время ожидания для пользователя. Загрузка ресурсов заранее является эффективным способом оптимизации работы сервера и повышения качества обслуживания пользователей

  • 200 (OK) "Успешно"

Запрос был успешно обработан. Контекст зависит от используемого метода в запросе:
- GET: Запрошенный ресурс был найден и передан в теле ответа.
- HEAD: Заголовки переданы в ответе.
- POST: Ресурс, описывающий результат действия сервера на запрос, передан в теле ответа.
- TRACE: Тело ответа содержит тело запроса, полученного сервером.

  • 201 (Created) "Создано"

В данном случае запрос был успешно выполнен и в результате был создан ресурс. Код ответа, который обычно отправляется в этом случае, представляет собой подтверждение успешного выполнения запроса PUT. Запрос PUT используется для создания или обновления ресурса на сервере.

  • 202 (Accepted) "Принято"

Запрос был принят, но еще не обработан. Отсутствует возможность отправить асинхронный ответ позже, который бы показывал итог обработки запроса. Такая ситуация может возникнуть, например, когда запрос обрабатывается другим процессом или сервером, либо когда требуется пакетная обработка данных.

  • 203 (Non-Authoritative Information) "Информация не авторитетна"

Код ответа указывает на то, что информация, которую сервер вернул, была получена из другого источника, а не от самого сервера.

  • 204 (No Content) "Нет содержимого"

Отсутствует содержимое для ответа на запрос. Однако заголовки ответа, которые могут быть полезны, все равно отправляются клиенту. Эти заголовки могут использоваться для обновления кэшированных заголовков, полученных ранее для данного ресурса.

  • 205 (Reset Content) "Сбросить содержимое"

Код присылается в ответ на обработку запроса, для информирования клиента о необходимости сбросить отображение документа, который прислал этот запрос.

  • 206 (Partial Content) "Частичное содержимое"

Код ответа используется для выполнения загрузки отдельно, в несколько потоков, когда клиент присылает заголовок диапазона.

  • 300 (Multiple Choice) "Множественный выбор"

Код ответа указывает на то, что запрос имеет более одного из возможных ответов, и клиент должен выбрать один из них. Выбор ответа осуществляется либо через User-Agent, либо через поведение пользователя. Но нет стандартизированного способа выбора одного из полученных ответов.

  • 301 (Moved Permanently) "Перемещён на постоянной основе"

Код ответа указывает на то, что URI запрашиваемого ресурса был изменен. Возможно, новый URI будет предоставлен в ответе. Новый URI может быть указан в ответе для того, чтобы клиент мог продолжать работу с ресурсом.

  • 302 (Found) "Найдено"

Код ответа указывает на то, что запрошенный ресурс временно изменен. Новые изменения в URI могут быть доступны в будущем. Это означает, что клиент должен использовать новый URI в будущих запросах.

  • 303 (See Other) "Просмотр других ресурсов"

Код ответа присылается для направления клиента на получение запрашиваемого ресурса по другому URI с запросом GET.

  • 304 (Not Modified) "Не модифицировано"

Код ответа указывает на то, что запрошенный ресурс не был изменен. Это означает, что клиент может продолжать использовать кешированную версию ответа. Кеширование позволяет сохранять результаты предыдущих запросов и использовать их вместо повторного выполнения запроса.

  • 305 (Use Proxy) "Использовать прокси"

Код ответа указывает на то, что запрошенный ресурс должен быть доступен через прокси. Прокси-сервер — это посредник между клиентом и сервером, который может использоваться для обеспечения безопасности и защиты данных. Однако некоторые браузеры и приложения могут не поддерживать использование прокси-сервера, поэтому этот код ответа может быть устаревшим или несовместимым с некоторыми системами.

  • 307 (Temporary Redirect) "Временное перенаправление"

В данном случае сервер отправил ответ, чтобы клиент получил запрошенный ресурс на другом URL-адресе с тем же методом, который использовал предыдущий запрос. Этот код ответа имеет ту же семантику, что и код ответа 302 Found, за исключением того, что агент пользователя не должен изменять используемый метод HTTP. Если в первом запросе использовался метод POST, то во втором запросе также должен использоваться метод POST.

  • 400 (Bad Request) "Плохой запрос"

Сервер отправил ответ, потому что запрос содержит неверный синтаксис. Это может произойти, например, если запрос содержит неправильный формат данных или если он содержит недостаточно информации для понимания сервером. В таком случае сервер может вернуть ошибку или сообщение об ошибке, чтобы указать на проблему с запросом.

  • 401 (Unauthorized) "Неавторизованно"

Означает что для получения запрашиваемого ответа требуется аутентификация. Клиент должен предоставить свои учетные данные для доступа к ресурсу. После успешной аутентификации сервер вернет запрашиваемый ответ.

  • 403 (Forbidden) "Запрещено"

Сервер отказывается дать надлежащий ответ, потому что у клиента нет прав доступа к содержимому.

  • 404 (Not Found) "Не найден"

Сервер не находит запрашиваемый ресурс. Это может произойти, например, если ресурс был перемещен или удален. Чтобы решить эту проблему, клиент может попробовать использовать другой URL-адрес

  • 405 (Method Not Allowed) "Метод не разрешён"

Сервер знает о запрашиваемом методе, но он был деактивирован и не может быть использован. Это может произойти, например, если метод был отключен из соображений безопасности или конфиденциальности. Обязательные методы GET и HEAD, никогда не должны быть деактивированы и не должны возвращать этот код ошибки.

  • 407 (Proxy Authentication Required)

Код ответа аналогичен коду 401, отличие лишь в том, что аутентификация требуется для прокси сервера.

  • 408 (Request Timeout)

Код может прийти без предшествующего запроса. Это означает, что сервер хочет отключить неиспользуемое соединение. Этот метод используется для ускорения сёрфинга и оптимизации использования ресурсов. Некоторые браузеры, такие как Chrome и IE9, используют HTTP механизмы предварительного соединения для этой цели. Кроме того, стоит отметить, что не все серверы отправляют подобные сообщения, даже если соединение не используется. Также необходимо учитывать, что некоторые серверы прерывают соединения не отправляя подобных сообщений.

  • 409 (Conflict)

Запрос конфликтует с текущим состоянием сервера.

  • 410 (Gone)

Запрашиваемый контент удалён с сервера.

  • 411 (Length Required)

Запрос был отклонен из-за отсутствия заголовка Content-Length. Этот заголовок необходим для передачи данных на сервер. Если заголовок не указан, сервер может считать запрос недопонятным или неполным. Чтобы решить эту проблему, клиент может добавить заголовок Content-Length в свой запрос.

  • 412 (Precondition Failed)

Клиент указал в своих заголовках условия, которые сервер не может выполнить.

  • 413 (Request Entity Too Large)

Код ответа означает что размер запроса превышает лимит, объявленный сервером. Это может произойти, например, если клиент отправляет слишком большой файл или использует слишком много ресурсов. Сервер может закрыть соединение и вернуть заголовок Retry-After.

  • 414 (Request-URI Too Long)

Запрашиваемый клиентом URI слишком длинный для того, чтобы сервер смог его обработать. Это может произойти, например, если URI содержит слишком много символов или если URI содержит специальные символы, которые могут быть интерпретированы как часть URI.

  • 415 (Unsupported Media Type)

Код означает что медиа формат запрашиваемых данных не поддерживается сервером, поэтому запрос был отклонен. Это может произойти, например, если клиент запрашивает файл в неподдерживаемом формате, таком как аудио или видео.

  • 416 (Requested Range Not Satisfiable)

Диапазон, указанный заголовком запроса Range, не может быть выполнен. Возможно он выходит за пределы переданного URI

  • 417 (Expectation Failed)

Rод ответа указывает на то, что ожидание, указанное в заголовке запроса Expect, не может быть выполнено сервером.

  • 500 (Internal Server Error) "Внутренняя ошибка сервера"

Сервер столкнулся с ситуацией, которую он не знает как обработать.

  • 501 (Not Implemented) "Не реализовано"

Сервер не может обработать метод так как он им не поддерживается. GET и HEAD - методы, которые серверы должны поддерживать и, соответственно, не должны возвращать этот код.

  • 502 (Bad Gateway) "Плохой шлюз"

Ошибка указывает на то, что сервер, работающий в качестве шлюза для получения ответа, получил недействительный или недопустимый ответ.

  • 503 (Service Unavailable) "Сервис недоступен"

Сервер не готов обрабатывать запрос, возможно из-за отключения сервера или перегрузки. Это может произойти, например, если сервер испытывает технические проблемы или если сервер перегружен запросами. Вместе с этим ответом user-friendly страница должна отправлять объяснение проблемы для пользователя. Ответ должен использоваться для временных условий и Retry-After: HTTP-заголовок должен, по возможности, содержать предполагаемое время до восстановления сервиса. Заголовки связанные с кешем, которые отправляются вместе с этим ответом, обычно не должны кешироваться.

  • 504 (Gateway Timeout)

Сервер действует как шлюз и не может получить ответ вовремя.

  • 505 (HTTP Version Not Supported) "HTTP-версия не поддерживается"

Версия HTTP, которая используется в запросе, не поддерживается сервером.