Открыть сервис

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

Код состояния — это трёхзначное целое число, которое веб-сервер отправляет в ответ на запрос клиента (обычно браузера или поискового робота) по протоколу HTTP. Код состояния информирует о результате обработки запроса: был ли он успешно выполнен, произошла ли ошибка, или требуется дополнительное действие. Коды состояния стандартизированы в спецификациях HTTP/1.1 (RFC 7231) и более поздних версиях протокола, а их классификация основана на первой цифре числа.

История и стандартизация

Первая версия протокола HTTP (HTTP/0.9) не предусматривала кодов состояния — сервер просто возвращал запрошенные данные или ничего. В HTTP/1.0 (RFC 1945, 1996) были введены первые коды состояния, в основном трёхзначные числа, описывающие базовые сценарии: успех (200), перенаправление (302), ошибка клиента (404) и ошибка сервера (500). Дальнейшее развитие протокола в версии HTTP/1.1 (RFC 2616, 1999; затем RFC 7230–7235, 2014) значительно расширило список кодов, добавив новые классы и уточнив семантику существующих. В настоящее время поддержка кодов состояния является обязательной для любого HTTP-сервера.

Классификация по классам

Коды состояния делятся на пять классов, определяемых первой цифрой:

1xx (Информационные)

Коды 1xx информируют о том, что запрос принят и обрабатывается. Они не являются окончательными и используются редко. Основные коды:

2xx (Успешные)

Коды 2xx означают, что запрос был успешно получен, понят и обработан. Наиболее распространённые:

3xx (Перенаправления)

Коды 3xx указывают, что для выполнения запроса клиенту необходимо предпринять дополнительные действия, чаще всего — перейти по другому URL. Ключевые коды:

4xx (Ошибки клиента)

Коды 4xx означают, что ошибка произошла на стороне клиента: неверный синтаксис запроса, отсутствие доступа, запрос несуществующего ресурса. Самые известные:

5xx (Ошибки сервера)

Коды 5xx сигнализируют о том, что сервер не смог выполнить запрос по своей вине: из-за перегрузки, временной неисправности или внутренней ошибки. Основные коды:

Структура ответа с кодом состояния

HTTP-ответ состоит из трёх частей: строки состояния, заголовков и тела. Строка состояния включает версию протокола, код состояния и текстовую фразу (reason phrase), поясняющую код. Например: HTTP/1.1 200 OK. Текстовая фраза не является обязательной для понимания — её назначение — человекочитаемое описание.

Применение в веб-разработке

Коды состояния широко используются для диагностики и управления поведением клиентов:

Нестандартные и расширенные коды

Некоторые серверы и сервисы вводят собственные коды состояния, не входящие в стандарт. Например, nginx использует код 444 для закрытия соединения без ответа, а Cloudflare — 520 (Unknown Error), 521 (Web Server Is Down) и другие. Также существуют расширения стандарта, такие как коды состояния WebDAV (например, 207 Multi-Status для коллекций ресурсов).

Критика и ограничения

Хотя система кодов состояния универсальна, она имеет недостатки:

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →