Перейти к содержимому
ToolMug

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

Полный список кодов ответа сервера HTTP с поиском. Для каждого кода есть краткое объяснение, что он означает и где определён, — чтобы быстро разобраться в ошибке из логов или браузера.

Работает в браузере — введённые данные никуда не загружаются

100

ContinueRFC 9110

Сервер получил заголовки запроса; клиент может отправлять тело.

101

Switching ProtocolsRFC 9110

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

103

Early HintsRFC 8297

Предварительные заголовки, часто подсказки предзагрузки Link, отправленные до окончательного ответа.

200

OKRFC 9110

Запрос выполнен успешно.

201

CreatedRFC 9110

Запрос выполнен успешно, создан новый ресурс, обычно после POST или PUT.

202

AcceptedRFC 9110

Запрос принят в обработку, но обработка ещё не завершена.

203

Non-Authoritative InformationRFC 9110

Ответ был изменён преобразующим прокси.

204

No ContentRFC 9110

Запрос выполнен успешно, возвращать тело не нужно.

205

Reset ContentRFC 9110

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

206

Partial ContentRFC 9110

Возвращается только часть ресурса — в ответ на запрос с Range.

207

Multi-StatusRFC 4918 (WebDAV)

Несколько кодов состояния для нескольких операций, в теле XML.

208

Already ReportedRFC 5842 (WebDAV)

Элементы binding уже были перечислены ранее в этом ответе.

226

IM UsedRFC 3229

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

300

Multiple ChoicesRFC 9110

Есть несколько представлений на выбор.

301

Moved PermanentlyRFC 9110

Ресурс навсегда перемещён по URL из Location. Поисковые системы переносят ранжирование на новый URL.

302

FoundRFC 9110

Ресурс временно находится по другому URL. Браузеры могут заменить POST на GET при переходе.

303

See OtherRFC 9110

Получите результат по другому URL методом GET, обычно после отправки формы.

304

Not ModifiedRFC 9110

Кэшированная копия всё ещё актуальна — в ответ на условный запрос.

307

Temporary RedirectRFC 9110

Временное перенаправление, сохраняющее метод и тело запроса.

308

Permanent RedirectRFC 9110

Постоянное перенаправление, сохраняющее метод и тело запроса.

400

Bad RequestRFC 9110

Сервер не может обработать запрос, так как он неверно сформирован.

401

UnauthorizedRFC 9110

Требуется аутентификация или она не прошла. Ответ содержит WWW-Authenticate.

402

Payment RequiredRFC 9110

Зарезервирован на будущее; некоторые API используют его для проблем с оплатой.

403

ForbiddenRFC 9110

Сервер понял запрос, но отказывается его выполнять. Повторный вход не поможет.

404

Not FoundRFC 9110

Ресурса не существует, или сервер не хочет это подтверждать.

405

Method Not AllowedRFC 9110

Метод не поддерживается для этого ресурса. Заголовок Allow перечисляет допустимые методы.

406

Not AcceptableRFC 9110

Ни одно представление не соответствует заголовкам Accept запроса.

407

Proxy Authentication RequiredRFC 9110

Клиент должен сначала пройти аутентификацию на прокси.

408

Request TimeoutRFC 9110

Сервер не дождался запроса за отведённое время.

409

ConflictRFC 9110

Запрос конфликтует с текущим состоянием ресурса, например конфликт правок.

410

GoneRFC 9110

Ресурс удалён навсегда и не вернётся.

411

Length RequiredRFC 9110

Запросу нужен заголовок Content-Length.

412

Precondition FailedRFC 9110

Условие в заголовках запроса, например If-Match, не выполнено.

413

Content Too LargeRFC 9110

Тело запроса больше, чем разрешает сервер. Раньше назывался "Payload Too Large".

414

URI Too LongRFC 9110

URL длиннее, чем сервер готов обработать.

415

Unsupported Media TypeRFC 9110

Формат тела запроса, указанный в Content-Type, не поддерживается.

416

Range Not SatisfiableRFC 9110

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

417

Expectation FailedRFC 9110

Заголовок запроса Expect невозможно выполнить.

418

I'm a teapotRFC 2324 (April Fools)

Первоапрельская шутка из Hyper Text Coffee Pot Control Protocol, которую сохраняют некоторые серверы.

421

Misdirected RequestRFC 9110

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

422

Unprocessable ContentRFC 9110

Запрос сформирован верно, но его содержимое недопустимо, например не прошла проверка данных.

423

LockedRFC 4918 (WebDAV)

Ресурс заблокирован.

424

Failed DependencyRFC 4918 (WebDAV)

Запрос не выполнен, потому что не выполнился запрос, от которого он зависел.

425

Too EarlyRFC 8470

Сервер не станет обрабатывать запрос, который может быть воспроизведён повторно (ранние данные TLS).

426

Upgrade RequiredRFC 9110

Клиент должен перейти на другой протокол, указанный в заголовке Upgrade.

428

Precondition RequiredRFC 6585

Сервер требует условный запрос, чтобы избежать потери обновлений.

429

Too Many RequestsRFC 6585

Превышен лимит запросов. Retry-After указывает, когда повторить попытку.

431

Request Header Fields Too LargeRFC 6585

Заголовки слишком большие, часто из-за объёмных cookie.

451

Unavailable For Legal ReasonsRFC 7725

Ресурс заблокирован по юридическим причинам, например по решению суда.

499

Client Closed RequestNginx · Нестандартный

Код из журнала Nginx: клиент закрыл соединение раньше, чем ответил сервер.

500

Internal Server ErrorRFC 9110

Непредвиденная ошибка на сервере.

501

Not ImplementedRFC 9110

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

502

Bad GatewayRFC 9110

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

503

Service UnavailableRFC 9110

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

504

Gateway TimeoutRFC 9110

Шлюз или прокси не дождался ответа от вышестоящего сервера.

505

HTTP Version Not SupportedRFC 9110

Версия HTTP в запросе не поддерживается.

506

Variant Also NegotiatesRFC 2295

Ошибка конфигурации в прозрачном согласовании содержимого.

507

Insufficient StorageRFC 4918 (WebDAV)

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

508

Loop DetectedRFC 5842 (WebDAV)

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

511

Network Authentication RequiredRFC 6585

Нужно войти в сеть, обычно на captive-портале, например в Wi-Fi отеля.

520

Web Server Returned an Unknown ErrorCloudflare · Нестандартный

Cloudflare: исходный сервер вернул пустой, неизвестный или неожиданный ответ.

521

Web Server Is DownCloudflare · Нестандартный

Cloudflare: исходный сервер отказал в соединении.

522

Connection Timed OutCloudflare · Нестандартный

Cloudflare: истекло время TCP-соединения с исходным сервером.

524

A Timeout OccurredCloudflare · Нестандартный

Cloudflare: исходный сервер принял соединение, но не ответил вовремя.

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

  1. Введите в поле поиска код или слово, например 502 или «перенаправление».
  2. Или отфильтруйте по классу — информационные, успешные, перенаправление, ошибка клиента или ошибка сервера.
  3. Чтобы дать ссылку на конкретный код, добавьте его номер к адресу страницы, например #404.

Описание параметров

Классы
1xx — информационные, 2xx — успешные, 3xx — перенаправление, 4xx — ошибки клиента (проблема с запросом) и 5xx — ошибки сервера (проблема на стороне сервера).
Нестандартные
Коды вроде 499 в Nginx и 520–524 в Cloudflare не описаны ни в одном RFC, но часто встречаются в логах.

Как выбрать код перенаправления

Пять кодов перенаправления из RFC 9110 различаются по двум признакам: является ли перемещение постоянным и может ли клиент изменить метод запроса при переходе по перенаправлению.

Код Значение Постоянное Метод после перенаправления
301 Moved Permanently Да Может измениться с POST на GET
302 Found Нет Может измениться с POST на GET
303 See Other Нет Всегда становится GET
307 Temporary Redirect Нет Должен остаться тем же
308 Permanent Redirect Да Должен остаться тем же

Для обычного переноса страницы или перенаправления с HTTP на HTTPS стандартный выбор — 301. Используйте 308 или 307, когда запрос POST, например форма или вызов API, должен дойти до нового адреса без изменений. Используйте 303 после успешной отправки формы, чтобы направить браузер на страницу результата, которую он загружает методом GET.

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

Чем 301 отличается от 302?

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

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

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

Что означает 502 Bad Gateway?

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

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

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

Похожие инструменты