Что такое код состояния HTTP 404, 403, 200 и подобные числа

Все, кто пользуются Интернетом, наверняка знают, что означает ошибка «404 Not found» (не найдено). Она возникает, когда мы ищем страницу, а сервер не может ее найти. Но помимо этого кода сервер может выдавать и другие ответы.

Тестировщик » QA-блог » Прочее » Что такое код состояния HTTP 404, 403, 200 и подобные числа

Коды состояния HTTP

404 и подобные трехзначные числа, которые мы можем иногда наблюдать в браузере вместо нормального контента, называется кодом состояния HTTP. Сервер отсылает эти коды в ответ на действия пользователя-клиента.

На изображение объясняем что такое код состояния HTTP 404, 403, 200 и подобные числа.

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

Что такое код состояния HTTP

Код состояния HTTP (HTTP Status Code) — это натуральное число из трех цифр, которое указывает состояние сервера в ответ на посланный ему запрос.

Первая цифра такого кода определяет класс состояния, а всего классов пять:

  1. Информационные (1хх);
  2. Успешные (2хх);
  3. Перенаправление (3хх);
  4. Ошибка клиента (4хх);
  5. Ошибка сервера (5хх).

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

Перечень кодов состояния HTTP определяется регламентирующим Интернет-стандартом RFC 2616. Новые коды можно вводить только после их утверждения международным Инженерным советом Интернета (IETF).

1хх – Информационные коды состояния HTTP (Informational)

В этом классе содержатся коды для информирования отправителя о процессе передачи запроса. Примеры кодов из этого класса:

  • 100 ContinueПродолжай») — сервер удовлетворился первичными сведениями из запроса и ждет от клиента продолжения.
  • 101 Switching ProtocolsПереключение протоколов») — сервер обработал и исполнил запрос клиента о переключении протокола обмена сообщениями.
  • 102 ProcessingИдет обработка») — сервер принял запрос клиента, но его обработка все еще идет и потребует дополнительного времени (используется, чтобы клиент не разорвал соединение из-за превышения времени ожидания).

2хх – Успешные коды состояния HTTP (Success)

В этом классе содержатся коды для сообщений клиенту об успешной обработке его запроса. Примеры кодов из этого класса:

  • 200 OK («Хорошо») — сервер успешно обработал запрос и отправляет ответ клиенту в обратном сообщении.
  • 201 CreatedСоздано») — сервер создал новый ресурс, который просил клиент. 
  • 202 AcceptedПринято») — сервер принял запрос клиента и взял его в обработку.
  • 203 Non-Authoritative InformationНеавторитетный источник информации») — сервер обработал запрос, но отправляемая им информация была взята не из первоисточника, а другого ресурса (например, резервной копии). Поэтому с полученным ответом надо быть осторожней, т.к. данные могут быть не актуальны.
  • 207 Multi-StatusМного статусов») — сервер обработал сразу несколько запросов и передает результат их обработки в одном сообщении.

3хх – Коды состояния HTTP о перенаправлении (Redirection)

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

  • 300 Multiple ChoicesМножественный выбор») — сервер предлагает клиенту список альтернативных ресурсов (например, в зависимости от языка).
  • 301 Moved PermanentlyПеремещен на постоянной основе») — сервер сообщает, что запрашиваемый документ был перемещен на другой ресурс, и указывает его.
  • 302 FoundНайдено»), Moved Temporarily («Перемещен временно») — то же, что и 301, но документ был перемещен туда временно.
  • 305 Use ProxyИспользуйте прокси») — сервер сообщает, что запрос к ресурсу нужно делать через прокси-сервер, и указывает его адрес.

4хх – Коды состояния HTTP об ошибке клиента (Client Error)

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

  • 400 Bad RequestНекорректный запрос») — сервер сообщает, что в запросе клиента обнаружена синтаксическая ошибка.
  • 401 UnauthorizedНеавторизовано») — сервер сообщает, что клиент еще не авторизован для доступа к этому ресурсу. 
  • 403 ForbiddenЗапрещено») — сервер понял запрос, но отказывается его выполнять, потому что имеются установленные ограничения по доступу к данным (например, доступ к конфигурационным файлам).
  • 404 Not FoundНе найдено») — сервер понял запрос, но не нашел данные по запрошенному адресу.
  • 405 Method Not AllowedМетод не разрешен») —сервер не может выполнить запрос клиента, потому что указанный в запросе метод нельзя применить к ресурсу.
  • 408 Request TimeoutВремя ожидания истекло») — сервер закрыл соединение, т.к. время ожидания передачи данных от клиента истекло.
  • 409 ConflictКонфликт») — сервер сообщает, что не может выполнить запрос из-за конфликтного обращения к нему двух и более пользователей (пытаются изменить одни и те же данные).
  • 410 GoneУдалено») — сервер сообщает, что запрашиваемый ресурс был удален.
  • 414 URI Too LongСлишком длинный адрес») — сервер сообщает, что не может обработать запрос из-за слишком длинного адреса ресурса.
  • 418 I’m a teapotЯ – чайник») — ответ, который был утвержден RFC 2324 как первоапрельская шутка.

5хх – Коды состояния HTTP об ошибке сервера (Server Error)

В этом классе содержатся коды для сообщений о том, что ошибку сделал сам сервер. Примеры кодов из этого класса:

  • 500 Internal Server ErrorВнутренняя ошибка сервера») — любая ошибка сервера, которая не входит в другие классы.
  • 501 Not ImplementedНе внедрено») — сервер сообщает, что не поддерживает запрошенный метод обработки запроса. 
  • 502 Bad GatewayНекорректный шлюз») — сервер сообщает, что получил недействительное ответное сообщение от вышестоящего сервера.
  • 503 Service UnavailableСервис недоступен») — сервер сообщает, что временно не может обработать запрос по техническим причинам (напр., обслуживание или перегрузка).
  • 508 Loop DetectedОбнаружена петля») — сервер сообщает, что обнаружил бесконечный цикл при обработке запроса, поэтому отменил его выполнение.

Резюме

Коды состояния HTTP используются, чтобы проверить соединение «клиент-сервер». Для тестировщиков интересны в первую очередь коды серий 4хх и 5хх, т.к. там описываются произошедшие ошибки взаимодействия. Более подробно про коды состояний в тестировании можно узнать на курсах тестировщиков.

на изображение автор Михаил Кулешов

Автор Михаил Кулешов

Михаил, профессиональный партнерский маркетолог, является основателем компании South Media OÜ, которая была создана в 2018 году и базируется в Таллинне. С 2016 года Михаил уехал из Финляндии и жил как настоящий «цифровой кочевник» в IT-индустрии, путешествуя по миру только с ноутбуком. Михаил работает и пишет статьи, связанные с IT-индустрией.

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

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