← Назад к списку
ТехническаяBackendJunior

Расскажите про коды ответов HTTP. Чем 401 отличается от 403, а 502 от 504?

Короткий ответ

  • 2xx — успех, 3xx — редиректы, 4xx — ошибка клиента, 5xx — сервера
  • 401 — не аутентифицирован, 403 — аутентифицирован, но нет прав
  • 404 — ресурс не найден, 409 — конфликт состояния
  • 422 — данные синтаксически верны, но невалидны по смыслу
  • 502 — плохой ответ от апстрима, 504 — апстрим не ответил вовремя
  • 429 — превышен лимит запросов

Классы кодов разделяют ответственность: 4xx — проблема на стороне клиента, 5xx — на стороне сервера.

Как сказать вслух

пример ответа

Коды делятся на классы: двухсотые — успех, четырёхсотые — ошибка клиента, пятисотые — ошибка сервера. Классическая пара на собеседовании: 401 значит «мы не знаем, кто ты» — нет или невалидный токен, а 403 — «мы знаем, кто ты, но тебе сюда нельзя». А 502 возвращает прокси, когда бэкенд ответил мусором или соединение оборвалось, 504 — когда бэкенд просто не успел ответить за таймаут.

Подробный ответ

Основной ответ

Коды состояния — контракт между клиентом и сервером. 200 — успех, 201 — создано, 204 — успех без тела. 301/302/307/308 — редиректы, различаются постоянством и сохранением метода. 400 — некорректный запрос, 401 Unauthorized — требуется аутентификация (имя исторически неудачное), 403 Forbidden — аутентификация есть, авторизации нет, 404 — не найдено, 409 — конфликт (например, версия ресурса устарела), 422 — семантически невалидные данные, 429 — rate limit. 500 — необработанная ошибка, 502 Bad Gateway — прокси получил некорректный ответ от апстрима, 503 — сервис перегружен или на обслуживании, 504 Gateway Timeout — апстрим не ответил в срок. Правильные коды позволяют клиентам и инфраструктуре (ретраи, алерты, кэши) вести себя корректно.

Ключевые моменты

  • 401 vs 403. 401 — проблема аутентификации, клиент может повторить с валидными учётными данными. 403 — прав нет, повтор с тем же пользователем бессмыслен.
  • 502 vs 503 vs 504. 502 — апстрим ответил некорректно, 503 — сервис недоступен или перегружен, 504 — апстрим не уложился в таймаут. Все три обычно отдаёт балансировщик.
  • Коды и ретраи. 5xx и 429 обычно ретраят с экспоненциальной задержкой, 4xx (кроме 408 и 429) ретраить бессмысленно — запрос неисправен.

Практический контекст

На практике коды — основа мониторинга и алертинга: рост 5xx будит дежурного, рост 401 намекает на проблемы с токенами. Частая ошибка в API — возвращать 200 с ошибкой в теле: это ломает ретраи, кэширование и метрики. Интервьюер проверяет, что кандидат не просто зазубрил числа, а понимает, как код влияет на поведение клиентов и прокси.

Частые ошибки

  • Говорят, что 401 — «нет прав», путая с 403
  • Не знают разницы между 502 и 504 — а она напрямую указывает, где искать проблему
  • Проектируют API, которое всегда отвечает 200, а ошибку кладёт в тело

ИП Кочкин Алексей Сергеевич · ИНН 390509026279 · ОГРНИП 325390000030973 · jiniys2005@yandex.ru