Справочник

Коды ответа HTTP: полный список с расшифровкой

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

Обновлено 07.10.2026≈ 8 мин чтения
Содержание 6

Пять классов

КлассЧто значитСамые известные коды
1xxИнформационный ответ: запрос получен, обработка идёт100, 101, 103
2xxУспех: запрос получен, понят и принят200, 204, 206
3xxПеренаправление: чтобы закончить запрос, нужен ещё шаг — обычно перейти по другому адресу301, 302, 304
4xxОшибка клиента: в запросе ошибка, или его нельзя выполнить403, 404, 429
5xxОшибка сервера: запрос с виду правильный, но сервер не смог его выполнить500, 502, 503

Стандарт HTTP требует от браузеров и программ понимать хотя бы класс ответа. Незнакомый код они обязаны понимать как первый код своего класса: неизвестный 4xx — как 400, неизвестный 5xx — как 500.

Слова после числа — Not Found, Bad Gateway — пояснение для человека. Стандарт HTTP/1.1 советует программам не опираться на этот текст, а в HTTP/2 его нет вовсе: передаётся только число. Поэтому один и тот же код у разных серверов подписан по-разному. Например, nginx называет код 413 «Request Entity Too Large», а в реестре он давно называется Content Too Large.

Как узнать код ответа страницы

  • В браузере. Откройте инструменты разработчика (F12 или Ctrl+Shift+I, на Mac — Cmd+Option+I), перейдите на вкладку Network («Сеть») и обновите страницу. Код каждого запроса — в колонке Status.
  • В терминале. Команда ниже покажет заголовки ответа, первая строка — версия протокола и код:
curl -I https://example.com/

Ключ -I отправляет запрос HEAD, а на него некоторые сайты отвечают не так, как на обычный переход по ссылке. Код настоящего GET-запроса покажет вторая команда, а третья пройдёт по всей цепочке перенаправлений и выведет код каждого шага:

curl -s -o /dev/null -w '%{http_code}\n' https://example.com/
curl -sIL https://example.com/

Полный список

Все коды из реестра IANA на 6 октября 2026 года. Номера, которых нет в таблице (например, 419, 427, 509), никому не назначены.

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

КодНазваниеЧто значит
100ContinueНачало запроса принято, клиент может досылать остальное
101Switching ProtocolsСервер по просьбе клиента переходит на другой протокол — например, на WebSocket
102ProcessingКод из первой спецификации WebDAV (RFC 2518): запрос принят, ответ ещё готовится
103Early HintsПредварительный ответ: сервер заранее подсказывает браузеру, какие файлы загружать, пока готовит основной
104Upload Resumption SupportedВременная регистрация для черновика стандарта о докачке загрузок; действует до 13 ноября 2026 года

2xx — успех

КодНазваниеЧто значит
200OKЗапрос выполнен
201CreatedЗапрос выполнен, создан новый ресурс
202AcceptedЗапрос принят в обработку, но ещё не выполнен
203Non-Authoritative InformationЗапрос выполнен, но посредник (прокси) изменил ответ сервера
204No ContentЗапрос выполнен, тела ответа нет
205Reset ContentЗапрос выполнен, клиенту стоит очистить форму
206Partial ContentОтдана часть файла по запросу диапазона — так работают докачка и перемотка видео
207Multi-StatusWebDAV: в одном ответе результаты нескольких операций
208Already ReportedWebDAV: элемент уже перечислен раньше в этом же ответе
226IM UsedСервер отдал не весь ресурс, а изменения к нему (RFC 3229)

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

КодНазваниеЧто значит
300Multiple ChoicesУ ресурса несколько вариантов, нужно выбрать один
301Moved PermanentlyАдрес сменился навсегда
302FoundРесурс временно доступен по другому адресу
303See OtherРезультат смотрите по другому адресу — обычный ответ после отправки формы
304Not ModifiedРесурс не изменился, можно показать копию из кэша
305Use ProxyУстарел, не используется
306(Unused)Был в старой версии стандарта, сейчас зарезервирован
307Temporary RedirectВременное перенаправление, метод запроса менять нельзя
308Permanent RedirectПостоянное перенаправление, метод запроса менять нельзя

4xx — ошибки клиента

КодНазваниеЧто значит
400Bad RequestСервер счёл запрос неправильным
401UnauthorizedНужно войти: нет логина и пароля или они не подошли
402Payment RequiredЗарезервирован на будущее
403ForbiddenДоступ запрещён
404Not FoundСтраница не найдена
405Method Not AllowedЭтот метод запроса (например, POST) по этому адресу не принимается
406Not AcceptableУ сервера нет варианта ответа, который подошёл бы под заголовки Accept запроса
407Proxy Authentication RequiredКак 401, только войти нужно на прокси-сервере
408Request TimeoutКлиент слишком долго присылал запрос
409ConflictЗапрос конфликтует с текущим состоянием ресурса
410GoneРесурс удалён насовсем
411Length RequiredСервер требует заголовок Content-Length
412Precondition FailedНе выполнилось условие из заголовков запроса (If-Match и подобных)
413Content Too LargeТело запроса — например, загружаемый файл — слишком большое
414URI Too LongАдрес слишком длинный
415Unsupported Media TypeФормат тела запроса не поддерживается
416Range Not SatisfiableЗапрошенный диапазон выходит за пределы файла
417Expectation FailedСервер не может выполнить требование из заголовка Expect
418(Unused)Шуточный «Я чайник»; зарезервирован, чтобы его никому не назначили
421Misdirected RequestЗапрос попал на сервер, который не отвечает за этот адрес
422Unprocessable ContentЗапрос составлен верно, но данные в нём обработать нельзя
423LockedWebDAV: ресурс заблокирован
424Failed DependencyWebDAV: не выполнилась операция, от которой зависела эта
425Too EarlyСервер не хочет обрабатывать запрос, который могут прислать повторно (ранние данные TLS 1.3)
426Upgrade RequiredНужно перейти на другой протокол — какой, сервер укажет в заголовке Upgrade
428Precondition RequiredСервер требует условный запрос, чтобы не затереть чужие изменения
429Too Many RequestsСлишком много запросов за короткое время
431Request Header Fields Too LargeЗаголовки запроса слишком большие
451Unavailable For Legal ReasonsДоступ закрыт по юридическим причинам

5xx — ошибки сервера

КодНазваниеЧто значит
500Internal Server ErrorВнутренняя ошибка сервера
501Not ImplementedСервер не поддерживает то, что нужно для ответа
502Bad GatewayСервер-посредник получил от следующего сервера неправильный ответ
503Service UnavailableСервер временно не может обработать запрос: перегрузка или работы
504Gateway TimeoutСервер-посредник не дождался ответа от следующего сервера
505HTTP Version Not SupportedСервер не поддерживает версию HTTP из запроса
506Variant Also NegotiatesОшибка в настройке выбора вариантов ответа на сервере
507Insufficient StorageWebDAV: на сервере не хватает места для выполнения запроса
508Loop DetectedWebDAV: сервер наткнулся на бесконечный цикл
510Not ExtendedУстарел: расширение HTTP, для которого его ввели, признано историческим
511Network Authentication RequiredНужно войти в сеть — например, на странице входа в общественный Wi-Fi

Коды nginx, которых нет в стандарте

nginx пишет в журнал несколько своих кодов. Посетитель видит их не всегда: 494–497 приходят ему как обычный 400, а 444 и 499 — вообще без ответа.

КодЧто случилосьЧто получит посетитель
444nginx закрыл соединение, ничего не ответив, — так задаётся в настройкахОшибку пустого ответа, в Chrome — ERR_EMPTY_RESPONSE
494Заголовки запроса или cookie не поместились в буферыСтраницу «400 Request Header Or Cookie Too Large»
495Клиентский сертификат не прошёл проверкуСтраницу «400 The SSL certificate error»
496Сервер требует клиентский сертификат, а его не прислалиСтраницу «400 No required SSL certificate was sent»
497Обычный HTTP-запрос пришёл на порт HTTPSСтраницу «400 The plain HTTP request was sent to HTTPS port»
499Клиент закрыл соединение, не дождавшись ответаНичего — он уже ушёл

Источники

Сверено 6 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 07.10.2026