Какие статус-коды ошибок бывают? Может ли сервер отправить код 400, если проблема на его стороне?

Статус-коды ошибок в HTTP делятся на классы:


1. Классы кодов

  • 1xx — информационные (редко используются).

  • 2xx — успешные ответы.

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

  • 4xx — ошибки клиента (Client Error).

  • 5xx — ошибки сервера (Server Error).


2. Основные коды ошибок

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

  • 400 Bad Request — неверный запрос (некорректный синтаксис, невалидный JSON, неправильные параметры).

  • 401 Unauthorized — не авторизован (отсутствует/неверный токен).

  • 403 Forbidden — доступ запрещён, даже если токен есть.

  • 404 Not Found — ресурс не найден.

  • 405 Method Not Allowed — метод (GET/POST/PUT/DELETE) не поддерживается.

  • 409 Conflict — конфликт (например, при создании ресурса с уже существующими данными).

  • 429 Too Many Requests — превышен лимит запросов (rate limit).

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

  • 500 Internal Server Error — внутренняя ошибка сервера.

  • 502 Bad Gateway — некорректный ответ от промежуточного сервера (прокси, балансировщик).

  • 503 Service Unavailable — сервис недоступен (перегрузка, тех. работы).

  • 504 Gateway Timeout — не дождался ответа от следующего сервиса.


3. Может ли сервер отправить 400, если проблема на его стороне?

  • По спецификации: 400 всегда означает, что проблема на стороне клиента (неправильные данные в запросе).

  • На практике: да, сервер может ошибочно вернуть 400, если в коде бэкенда неправильно настроена обработка ошибок. Но это будет некорректно и введёт в заблуждение. Для ошибок сервера нужно использовать 5xx.

Last updated

Was this helpful?