tigtools

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

Узнайте, что означает любой код состояния HTTP, когда сервер его отправляет и в какой спецификации он определён. Ищите по номеру или ключевому слову, фильтруйте по классу и переходите по прямой ссылке на нужный код.

Работает в браузере Без регистрации

Показано кодов: 79

  • 100 Continue

    Сервер получил заголовки запроса, и клиент может отправить тело запроса. Такой ответ появляется, когда клиент передаёт «Expect: 100-continue» перед загрузкой большого тела запроса.

    Определён в RFC 9110

  • 101 Switching Protocols

    Сервер соглашается перейти на протокол, запрошенный клиентом в заголовке Upgrade. Такой ответ появляется, когда соединение переключается на WebSocket.

    Определён в RFC 9110

  • 102 Processing

    Устаревший или не используется

    Сервер принял запрос WebDAV, но ещё не обработал его. Этот код исключили из последующих спецификаций WebDAV, поэтому сейчас его используют редко.

    Определён в RFC 2518

  • 103 Early Hints

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

    Определён в RFC 8297

  • 200 OK

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

    Определён в RFC 9110

  • 201 Created

    Запрос выполнен успешно и создан новый ресурс, обычно указанный в заголовке Location. Типичный ответ на успешный POST-запрос, создающий запись.

    Определён в RFC 9110

  • 202 Accepted

    Запрос принят в обработку, но ещё не завершён. Используется в API, которые ставят задачи в очередь, например экспорт или пакетную обработку.

    Определён в RFC 9110

  • 203 Non-Authoritative Information

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

    Определён в RFC 9110

  • 204 No Content

    Запрос выполнен успешно, и возвращать содержимое не нужно. Часто используется для запросов DELETE и при сохранении данных, когда клиенту не требуется тело ответа.

    Определён в RFC 9110

  • 205 Reset Content

    Запрос выполнен успешно, и клиенту следует сбросить отображение документа, например очистить форму. Используется редко.

    Определён в RFC 9110

  • 206 Partial Content

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

    Определён в RFC 9110

  • 207 Multi-Status

    Ответ WebDAV, содержащий отдельные коды состояния для нескольких ресурсов в теле XML.

    Определён в RFC 4918

  • 208 Already Reported

    Используется внутри ответа WebDAV 207, чтобы не перечислять повторно участников одного и того же связанного ресурса.

    Определён в RFC 5842

  • 226 IM Used

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

    Определён в RFC 3229

  • 300 Multiple Choices

    У ресурса есть несколько представлений, и клиенту следует выбрать одно из них. На практике используется редко.

    Определён в RFC 9110

  • 301 Moved Permanently

    Ресурс навсегда перемещён по URL из заголовка Location. Браузеры и поисковые системы обновляют ссылки; при переходе некоторые клиенты меняют метод POST на GET.

    Определён в RFC 9110

  • 302 Found

    Ресурс временно доступен по другому URL, указанному в заголовке Location. Часто используется после входа в систему и для кратковременных перенаправлений; браузеры обычно переходят по нему с помощью GET.

    Определён в RFC 9110

  • 303 See Other

    Клиенту следует получить результат с другого URL с помощью GET. Используется после отправки формы методом POST, чтобы перенаправить пользователя на страницу подтверждения (схема Post/Redirect/Get).

    Определён в RFC 9110

  • 304 Not Modified

    Кэшированная копия всё ещё актуальна, поэтому сервер не отправляет тело ответа. Такой ответ появляется, когда браузер проверяет актуальность кэшированного файла с помощью If-None-Match или If-Modified-Since.

    Определён в RFC 9110

  • 305 Use Proxy

    Устаревший или не используется

    Клиенту предлагалось использовать прокси-сервер, указанный в заголовке Location. Код устарел по соображениям безопасности, и браузеры его игнорируют.

    Определён в RFC 9110

  • 306 (Unused)

    Устаревший или не используется

    Зарезервирован. Использовался в раннем черновике HTTP/1.1, но больше не применяется.

    Определён в RFC 9110

  • 307 Temporary Redirect

    Ресурс временно доступен по другому URL, и клиент должен повторить запрос с тем же методом и телом. Также используется браузерами для внутренних перенаправлений HSTS на HTTPS.

    Определён в RFC 9110

  • 308 Permanent Redirect

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

    Определён в RFC 9110

  • 400 Bad Request

    Сервер не может обработать запрос, поскольку он составлен некорректно: например, содержит ошибку в JSON, неверный параметр запроса или повреждённую cookie.

    Определён в RFC 9110

  • 401 Unauthorized

    В запросе отсутствуют действительные учётные данные для аутентификации. Несмотря на название, этот код означает «не аутентифицирован»; сервер отправляет заголовок WWW-Authenticate с описанием способа входа.

    Определён в RFC 9110

  • 402 Payment Required

    Зарезервирован спецификацией HTTP для будущего использования. Некоторые API и платёжные сервисы используют его, когда требуется оплата или подписка.

    Определён в RFC 9110

  • 403 Forbidden

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

    Определён в RFC 9110

  • 404 Not Found

    Сервер не может найти запрошенный ресурс. Обычно причина — опечатка или устаревшая ссылка, удалённая страница или неверный маршрут API.

    Определён в RFC 9110

  • 405 Method Not Allowed

    Ресурс существует, но не поддерживает указанный HTTP-метод, например POST для URL, доступного только для чтения. В ответе перечислены разрешённые методы в заголовке Allow.

    Определён в RFC 9110

  • 406 Not Acceptable

    Сервер не может сформировать ответ ни в одном из форматов, перечисленных в заголовках Accept клиента.

    Определён в RFC 9110

  • 407 Proxy Authentication Required

    Как код 401, но сначала клиент должен пройти аутентификацию на прокси-сервере. Встречается в корпоративных сетях с прокси-сервером, требующим аутентификации.

    Определён в RFC 9110

  • 408 Request Timeout

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

    Определён в RFC 9110

  • 409 Conflict

    Запрос конфликтует с текущим состоянием ресурса: например, при конфликте изменений или попытке создать уже существующий объект.

    Определён в RFC 9110

  • 410 Gone

    Ресурс удалён навсегда и не будет восстановлен. В отличие от 404, этот код сообщает поисковым системам, что URL нужно быстрее исключить из индекса.

    Определён в RFC 9110

  • 411 Length Required

    Сервер требует заголовок Content-Length, но в запросе его нет.

    Определён в RFC 9110

  • 412 Precondition Failed

    Условие в заголовках запроса, например If-Match, не выполнено. Код используется, чтобы не перезаписать ресурс, изменившийся с момента последнего чтения клиентом.

    Определён в RFC 9110

  • 413 Content Too Large

    Тело запроса превышает допустимый для сервера размер. Встречается при загрузке файла, превышающего установленный лимит, например client_max_body_size в nginx.

    Определён в RFC 9110

  • 414 URI Too Long

    URL длиннее, чем сервер готов обработать. Обычно причина — форма, передающая слишком много данных методом GET, или цикл перенаправлений, постоянно добавляющий параметры.

    Определён в RFC 9110

  • 415 Unsupported Media Type

    Сервер не поддерживает формат тела запроса. Например, запрос отправляет XML на конечную точку, которая ожидает application/json.

    Определён в RFC 9110

  • 416 Range Not Satisfiable

    Запрошенный в заголовке Range диапазон байтов выходит за пределы размера ресурса.

    Определён в RFC 9110

  • 417 Expectation Failed

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

    Определён в RFC 9110

  • 418 I'm a teapot

    Шутка ко Дню дурака из протокола управления кофейником Hyper Text 1998 года: чайник отказывается варить кофе. HTTP резервирует этот код как неиспользуемый, но некоторые серверы возвращают его как пасхалку или для отклонения нежелательных ботов.

    Определён в RFC 2324 / RFC 9110 (Unused)

  • 419 Page Expired

    Нестандартный

    Нестандартный код. Laravel возвращает его, если в форме отсутствует CSRF-токен или срок его действия истёк, обычно после завершения сеанса.

    Определён в Laravel

  • 420 Enhance Your Calm

    Нестандартный

    Нестандартный код. Раньше Twitter API использовал его для ограничения частоты запросов; стандартный код для этого — 429.

    Определён в Twitter API v1

  • 421 Misdirected Request

    Запрос попал на сервер, который не может сформировать ответ для этого хоста, например если соединение HTTP/2 используется повторно для другого домена.

    Определён в RFC 9110

  • 422 Unprocessable Content

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

    Определён в RFC 9110

  • 423 Locked

    Ресурс WebDAV заблокирован, поэтому его нельзя изменить.

    Определён в RFC 4918

  • 424 Failed Dependency

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

    Определён в RFC 4918

  • 425 Too Early

    Сервер не будет обрабатывать запрос, который можно повторно отправить, например запрос в ранних данных TLS 1.3.

    Определён в RFC 8470

  • 426 Upgrade Required

    Сервер отказывает в обработке запроса с текущим протоколом и указывает требуемый протокол в заголовке Upgrade.

    Определён в RFC 9110

  • 428 Precondition Required

    Сервер требует условный запрос (например, с If-Match), чтобы предотвратить потерю обновлений.

    Определён в RFC 6585

  • 429 Too Many Requests

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

    Определён в RFC 6585

  • 431 Request Header Fields Too Large

    Заголовки запроса слишком велики, часто из-за слишком большого количества cookie или их чрезмерного размера. Обычно проблему решает очистка cookie сайта.

    Определён в RFC 6585

  • 444 No Response

    Нестандартный

    Нестандартный код. nginx использует его внутри системы, чтобы закрыть соединение без отправки ответа, часто для отсеивания нежелательного трафика; клиенты фактически его не получают.

    Определён в nginx

  • 451 Unavailable For Legal Reasons

    Ресурс недоступен по юридическим причинам, например из-за решения суда или государственной цензуры. Число отсылает к роману «451° по Фаренгейту».

    Определён в RFC 7725

  • 494 Request Header Too Large

    Нестандартный

    Нестандартный код. Вариант кода 431, используемый самим nginx и записываемый в журнал, когда заголовки запроса превышают буферные лимиты.

    Определён в nginx

  • 495 SSL Certificate Error

    Нестандартный

    Нестандартный код. nginx возвращает его, если проверка сертификата клиента завершается ошибкой.

    Определён в nginx

  • 496 SSL Certificate Required

    Нестандартный

    Нестандартный код. nginx возвращает его, если клиент не предоставил обязательный сертификат.

    Определён в nginx

  • 497 HTTP Request Sent to HTTPS Port

    Нестандартный

    Нестандартный код. nginx возвращает его, если обычный HTTP-запрос отправлен на порт, настроенный для HTTPS.

    Определён в nginx

  • 499 Client Closed Request

    Нестандартный

    Нестандартный код. nginx записывает его в журнал, если клиент закрыл соединение до ответа сервера, например когда пользователь отменил загрузку медленной страницы или истёк тайм-аут на стороне клиента.

    Определён в nginx

  • 500 Internal Server Error

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

    Определён в RFC 9110

  • 501 Not Implemented

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

    Определён в RFC 9110

  • 502 Bad Gateway

    Шлюз или прокси-сервер получил некорректный ответ от вышестоящего сервера. Частая причина — сбой или перезапуск приложения за nginx или балансировщиком нагрузки.

    Определён в RFC 9110

  • 503 Service Unavailable

    Сервер временно не может обработать запрос из-за перегрузки или технического обслуживания. В заголовке Retry-After может быть указано, когда можно повторить запрос.

    Определён в RFC 9110

  • 504 Gateway Timeout

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

    Определён в RFC 9110

  • 505 HTTP Version Not Supported

    Сервер не поддерживает версию HTTP, использованную в запросе.

    Определён в RFC 9110

  • 506 Variant Also Negotiates

    Ошибка конфигурации согласования содержимого на сервере: выбранный вариант сам настроен на согласование.

    Определён в RFC 2295

  • 507 Insufficient Storage

    Сервер не может сохранить данные, необходимые для выполнения запроса, например из-за заполненного диска на сервере WebDAV.

    Определён в RFC 4918

  • 508 Loop Detected

    Сервер остановил операцию WebDAV, обнаружив бесконечный цикл.

    Определён в RFC 5842

  • 509 Bandwidth Limit Exceeded

    Нестандартный

    Нестандартный код. Используется некоторыми конфигурациями виртуального хостинга (модулями Apache, cPanel), когда сайт превышает допустимый лимит трафика.

    Определён в Apache / cPanel

  • 510 Not Extended

    Устаревший или не используется

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

    Определён в RFC 2774

  • 511 Network Authentication Required

    Клиент должен пройти аутентификацию, чтобы получить доступ к сети. Такой ответ отправляют порталы авторизации в Wi-Fi-сетях отелей, аэропортов и кафе до входа в сеть.

    Определён в RFC 6585

  • 520 Web Server Returned an Unknown Error

    Нестандартный

    Нестандартный код. Cloudflare возвращает его, когда исходный сервер отправляет пустой, неизвестный или неожиданный ответ.

    Определён в Cloudflare

  • 521 Web Server Is Down

    Нестандартный

    Нестандартный код. Cloudflare возвращает его, когда исходный сервер отклоняет соединение — обычно потому, что веб-сервер не работает или блокирует IP-адреса Cloudflare.

    Определён в Cloudflare

  • 522 Connection Timed Out

    Нестандартный

    Нестандартный код. Cloudflare возвращает его, когда истекает время ожидания TCP-соединения с исходным сервером.

    Определён в Cloudflare

  • 523 Origin Is Unreachable

    Нестандартный

    Нестандартный код. Cloudflare возвращает его, когда не может связаться с исходным сервером, например из-за проблемы с DNS или маршрутизацией.

    Определён в Cloudflare

  • 524 A Timeout Occurred

    Нестандартный

    Нестандартный код. Cloudflare возвращает его, когда подключился к исходному серверу, но не получил ответ HTTP до истечения времени ожидания (по умолчанию — 100 секунд).

    Определён в Cloudflare

  • 525 SSL Handshake Failed

    Нестандартный

    Нестандартный код. Cloudflare возвращает его, когда не удаётся выполнить SSL/TLS-рукопожатие с исходным сервером.

    Определён в Cloudflare

  • 526 Invalid SSL Certificate

    Нестандартный

    Нестандартный код. Cloudflare возвращает его, когда SSL-сертификат исходного сервера недействителен, а режим Full (strict) SSL включён.

    Определён в Cloudflare

Как пользоваться

  1. Введите номер кода (например, 404 или просто 5 для всех ошибок сервера) либо ключевое слово, например «перенаправление» или «тайм-аут».
  2. Сузьте список с помощью фильтра по классу: информационные ответы, успешные ответы, перенаправления, ошибки клиента или ошибки сервера.
  3. Нажмите «Копировать ссылку» у нужного кода, чтобы поделиться прямой ссылкой на него, например в отчёте об ошибке.

Как это работает

Каждый ответ HTTP начинается с трёхзначного кода состояния. Первая цифра определяет класс: 1xx — информационные ответы, 2xx — успешное выполнение, 3xx — перенаправление, 4xx — ошибки запроса, 5xx — ошибки на стороне сервера. Клиенты, которые не распознают конкретный код, обрабатывают его как код x00 того же класса, поэтому неизвестный код 4xx обрабатывается как 400.

Основные коды определены в RFC 9110 (семантика HTTP, 2022), который заменил более старый RFC 7231. Другие коды появились в расширениях: WebDAV (RFC 4918), RFC 6585 для 428, 429, 431 и 511, RFC 7725 для 451 и RFC 8470 для 425. В RFC 9110 также переименованы два кода: теперь 413 называется “Content Too Large”, а 422 — “Unprocessable Content”. Вы всё ещё можете встретить их старые названия: “Payload Too Large” и “Unprocessable Entity”.

Некоторые коды, встречающиеся в журналах, вообще не являются стандартными. nginx использует коды 444 и 494–499 внутри системы (499 означает, что клиент перестал ждать ответа), а Cloudflare возвращает 520–526, если не может получить корректный ответ от исходного сервера. В списке они помечены как “Non-standard”. Причины ответа (например, “Not Found”) приведены на английском, как в спецификациях; в HTTP/2 и HTTP/3 передаётся только номер.

Примеры

301 или 308 при переносе сайта

Оба кода означают постоянное перенаправление. Для обычного переноса страницы используйте 301; используйте 308, если клиент должен повторить запрос POST или PUT по новому URL: некоторые клиенты после ответа 301 меняют POST на GET.

Чем отличаются 401 и 403

API возвращает 401, если токен не передан или срок его действия истёк, — клиенту нужно войти в систему. Код 403 возвращается, если токен действителен, но у пользователя нет нужных прав; повторный вход не поможет.

Как разобраться с ошибкой 502 за nginx

502 Bad Gateway от nginx означает, что приложение за ним не ответило должным образом. Проверьте, запущен ли процесс приложения и что записано в журнале; 504 означает, что ответ пришёл слишком поздно.

Часто задаваемые вопросы

Чем отличаются коды 404 и 410?

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

Какой код возвращать при ошибке валидации — 400 или 422?

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

Код 418 I'm a teapot — настоящий код состояния?

Этот код появился в первоапрельском RFC 1998 года. RFC 9110 оставляет код 418 незанятым, чтобы его не присвоили чему-то ещё. Некоторые серверы возвращают его в шутку, но стандартного значения у него нет.

Откуда взялся код 499?

Код 499 используется только в nginx. Он появляется в логах nginx, когда клиент закрывает соединение до того, как сервер отправит ответ. Клиент никогда не получает код 499: обычно он указывает на медленные ответы или тайм-ауты на стороне клиента.

Считают ли поисковые системы код 302 таким же, как 301?

Код 302 указывает на временное перенаправление, поэтому поисковые системы обычно сначала сохраняют исходный URL в индексе. Если перенаправление по коду 302 действует долго, Google может считать его постоянным. Для постоянного перенаправления используйте код 301 или 308.

Конфиденциальность

Список находится на этой странице. Поиск и фильтрация выполняются в вашем браузере; поисковые запросы никуда не отправляются и не попадают в аналитику.