HTTP-коды ответов

Полный справочник кодов состояния HTTP-ответов: что означает каждый код, когда сервер его отправляет и как на него реагировать — для отладки запросов, документирования API и анализа серверных логов.

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

Таблица кодов ответа HTTP

Code Название Значение
1xx Информационные
100 Continue Сервер получил заголовки запроса, и клиенту следует отправить тело запроса.
101 Switching Protocols Сервер соглашается переключиться на протокол, запрошенный в заголовке Upgrade.
102 Processing Сервер принял запрос целиком, но ещё не завершил его обработку (WebDAV).
103 Early Hints Предварительные заголовки, в основном подсказки предзагрузки Link, отправленные до финального ответа.
2xx Успешные
200 OK Запрос выполнен успешно, и ответ содержит запрошенное представление.
201 Created Запрос выполнен успешно, и создан новый ресурс, обычно указанный в Location.
202 Accepted Запрос принят для асинхронной обработки, которая ещё не завершена.
203 Non-Authoritative Information Ответ был изменён преобразующим прокси на пути к клиенту.
204 No Content Запрос выполнен успешно, и тело ответа намеренно отсутствует.
205 Сбросить Content Запрос выполнен успешно, и клиенту следует сбросить представление документа или формы.
206 Partial Content Ответ доставляет только диапазон байтов, запрошенный в заголовке Range.
3xx Перенаправления
300 Multiple Choices Существует несколько представлений, и клиенту следует выбрать одно из них.
301 Moved Permanently Ресурс постоянно переехал на новый URL, и ссылки следует обновить.
302 Found Ресурс временно находится по другому URL; продолжайте использовать исходный.
303 See Other Результат доступен по другому URL и должен быть получен методом GET.
304 Not Modified Кэшированная копия всё ещё актуальна, поэтому тело ответа снова не отправляется.
307 Temporary Redirect Временный редирект, при котором должны сохраняться исходный HTTP-метод и тело запроса.
308 Permanent Redirect Постоянный редирект, при котором должны сохраняться исходный HTTP-метод и тело запроса.
4xx Клиентские ошибки
400 Bad Request Сервер не может обработать запрос, поскольку он некорректно сформирован.
401 Unauthorized Требуются корректные учётные данные для аутентификации — они отсутствуют или неверны.
402 Payment Required Зарезервированный статус, на практике используется некоторыми API для лимитов оплаты.
403 Forbidden Сервер понял запрос, но отказывается его авторизовать.
404 Not Found По запрошенному URL не существует ни одного ресурса.
405 Method Not Allowed URL существует, но не поддерживает этот HTTP-метод.
406 Not Acceptable Ни одно представление не соответствует заголовкам согласования Accept.
407 Proxy Authentication Required Клиент должен сначала аутентифицироваться на прокси.
408 Request Timeout Сервер закрыл соединение, потому что запрос поступал слишком долго.
409 Conflict Запрос конфликтует с текущим состоянием ресурса, например при коллизии правок.
410 Gone Ресурс был намеренно удалён и не будет восстановлен.
411 Length Required Запрос должен включать заголовок Content-Length.
412 Precondition Failed Условный заголовок, например If-Match, оказался ложным.
413 Content Too Large Тело запроса превышает размер, допустимый сервером.
414 URI Too Long URL запроса длиннее, чем сервер способен разобрать.
415 Unsupported Media Type Формат тела запроса не поддерживается для этого ресурса.
416 Range Not Satisfiable Запрошенный диапазон байтов выходит за пределы размера ресурса.
417 Expectation Failed Заголовок запроса Expect не удалось выполнить.
418 I'm a teapot Первоапрельский статус из RFC 2324; некоторые API используют его как пасхалку.
421 Misdirected Request Запрос достиг сервера, который не может сформировать ответ для этого узла (authority).
422 Unprocessable Content Запрос корректно сформирован, но семантически недопустим — частый случай при валидации в REST.
425 Too Early Сервер отказывается обрабатывать запрос, который может быть воспроизведён повторно (ранние данные TLS).
426 Upgrade Required Клиент должен переключиться на другой протокол, указанный в Upgrade.
428 Precondition Required Сервер требует условный запрос, чтобы предотвратить потерю обновлений.
429 Too Many Requests Клиент превысил лимит запросов; Retry-After подсказывает, когда повторить попытку.
431 Request Header Fields Too Large Заголовки, часто куки, превышают лимиты размера, установленные сервером.
451 Unavailable For Legal Reasons Доступ заблокирован по юридическим причинам, например по решению суда.
5xx Серверные ошибки
500 Internal Server Error На сервере произошла непредвиденная ошибка при обработке запроса.
501 Not Implemented Сервер не распознаёт или не поддерживает метод запроса.
502 Bad Gateway Шлюз или прокси получили некорректный ответ от вышестоящего сервера.
503 Service Unavailable Сервер временно не может обслуживать запросы из-за перегрузки или технического обслуживания.
504 Gateway Timeout Шлюз или прокси перестали ждать ответа от вышестоящего сервера.
505 HTTP Version Not Supported Сервер не поддерживает используемую версию протокола HTTP.
506 Variant Also Negotiates Ошибка конфигурации согласования содержимого на сервере.
507 Insufficient Storage Серверу не хватает места для хранения данных, необходимых для завершения запроса (WebDAV).
508 Loop Detected Сервер обнаружил бесконечный цикл при обработке запроса (WebDAV).
510 Not Extended Запросу требуются дополнительные расширения, которые не были предоставлены.
511 Network Authentication Required Сеть (например, captive portal) сначала требует аутентификации.

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

Информационные ответы подтверждают, что запрос получен и клиент может продолжать. Они промежуточные: после них всегда следует финальный статус. На практике вы чаще всего встретите 103 Early Hints, который позволяет серверу заранее отправить подсказки предзагрузки до готовности полного ответа.

2xx Успешные

Успешные ответы означают, что запрос понят и принят. 200 OK содержит результат в теле ответа, 201 Created сообщает о создании нового ресурса, а 204 No Content подтверждает успех, намеренно не возвращая ничего.

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

Ответы о перенаправлении указывают клиенту на другой адрес. Ключевое различие — постоянство: 301/308 постоянные, 302/307 временные — а также то, должен ли сохраняться HTTP-метод (307/308) или он может измениться на GET (301/302). 304 Not Modified — особый случай, на котором работает кэширование браузера.

4xx Клиентские ошибки

Клиентские ошибки означают, что сам запрос был отклонён. Самые частые: 400 — некорректный запрос, 401 — требуется аутентификация, 403 — доступ отказан, 404 — по этому URL ничего нет, и 429 — превышен лимит запросов.

5xx Серверные ошибки

Серверные ошибки означают, что сервер не справился с запросом, который мог быть вполне корректным. 500 — это сбой приложения, 502 и 504 — прокси сообщает о неработающем или молчащем вышестоящем сервере, а 503 — намеренная временная недоступность.

Как читать код состояния

Первая цифра определяет класс: 1xx — информационные, 2xx — успешные, 3xx — перенаправления, 4xx — клиентские ошибки, 5xx — серверные ошибки. Клиент, встретивший неизвестный код, может безопасно обработать его как код x00 своего класса — именно так новые коды остаются обратно совместимыми. При отладке всегда смотрите на заголовки ответа рядом с кодом: Location объясняет перенаправления, Allow объясняет 405, Retry-After объясняет 429 и 503.

Примеры

200 OK                    — page served normally
301 Moved Permanently     — URL changed for good, follow Location
304 Not Modified          — your cached copy is still valid
404 Not Found             — nothing exists at this URL
429 Too Many Requests     — rate limit hit, wait Retry-After seconds
503 Service Unavailable   — temporary downtime or maintenance

Частые вопросы

Что такое HTTP 404?

HTTP 404 означает, что запрошенный ресурс не найден по указанному URL. Подробное руководство по 404 расскажет о причинах, способах исправления и влиянии на SEO.

В чём разница между 301 и 302?

Редирект 301 постоянный — ссылки и поисковые системы должны обновиться на новый URL. 302 сигнализирует о временном перемещении, при котором исходный URL остаётся каноническим.

Что означает 503?

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

В чём разница между 401 и 403?

401 означает, что серверу нужны корректные учётные данные для аутентификации. 403 означает, что он знает, кто вы, но всё равно отказывает в доступе — повторный вход не поможет.

В чём разница между 502 и 504?

Оба кода приходят от прокси, обращающегося к вышестоящему серверу: 502 означает, что вышестоящий сервер вернул некорректный ответ, 504 — что он вообще не ответил в течение таймаута.

Какие коды состояния важнее всего для SEO?

200 отмечает индексируемые страницы, 301/308 передают ранжирование при постоянных перемещениях, 404/410 убирают неработающие URL, а 503 защищает позиции в выдаче во время простоя, если отдаётся с Retry-After.