← Назад к вопросам

Какие знаешь HTTP статус-коды?

1.3 Junior🔥 191 комментариев
#API и интеграции#Форматы данных и протоколы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

HTTP Статус-коды

HTTP статус-коды — это трёхзначные числовые коды, которые сервер отправляет в ответ на запрос клиента. Они указывают на результат обработки запроса. Знание этих кодов критично для System Analyst при проектировании API и анализе проблем.

1xx — Информационные (100-199)

Временные ответы, информирующие о ходе обработки:

  • 100 Continue — клиент может продолжать отправку тела запроса
  • 101 Switching Protocols — сервер переходит на другой протокол (WebSocket)
  • 102 Processing — сервер обрабатывает запрос (WebDAV)

2xx — Успешные (200-299)

Запрос успешно обработан:

  • 200 OK — стандартный успешный ответ
  • 201 Created — ресурс создан (обычно для POST)
  • 202 Accepted — запрос принят, но обработка асинхронна
  • 204 No Content — успех без тела ответа (часто для DELETE)
  • 206 Partial Content — частичный контент (для Range запросов)

3xx — Редирект (300-399)

Клиент должен выполнить дополнительное действие:

  • 301 Moved Permanently — ресурс постоянно перемещён (поиск обновляет закладку)
  • 302 Found — временное перенаправление (большинство случаев)
  • 303 See Other — редирект на другой URL (обычно после POST)
  • 304 Not Modified — ресурс не изменился (для кэширования)
  • 307 Temporary Redirect — временный редирект без смены метода
  • 308 Permanent Redirect — постоянный редирект без смены метода

4xx — Ошибки клиента (400-499)

Ошибка в запросе клиента:

  • 400 Bad Request — синтаксическая ошибка в запросе
  • 401 Unauthorized — требуется аутентификация
  • 403 Forbidden — аутентифицирован, но доступ запрещён
  • 404 Not Found — ресурс не найден
  • 405 Method Not Allowed — метод не поддерживается (GET на POST-only endpoint)
  • 409 Conflict — конфликт с текущим состоянием (например, дублирование уникального ключа)
  • 410 Gone — ресурс был удалён и больше не доступен
  • 429 Too Many Requests — превышен лимит запросов (rate limiting)

5xx — Ошибки сервера (500-599)

Ошибка при обработке на сервере:

  • 500 Internal Server Error — внутренняя ошибка сервера
  • 501 Not Implemented — функция не реализована
  • 502 Bad Gateway — некорректный ответ от upstream сервера
  • 503 Service Unavailable — сервис временно недоступен (maintenance)
  • 504 Gateway Timeout — timeout при ожидании ответа от upstream

Практическая таблица для API Design

ОперацияМетодУспехОшибка клиентаОшибка сервера
СозданиеPOST201400, 409500
ЧтениеGET200404500
ОбновлениеPUT/PATCH200, 204400, 404, 409500
УдалениеDELETE204404500
AутентификацияPOST200401, 403500

Применение в System Analysis

При проектировании API:

  • Выбирать правильные коды для каждого сценария
  • Документировать возможные ошибки и их обработку
  • Учитывать retry логику для 5xx и 429

При анализе проблем:

  • 3xx может указывать на неправильные редиректы
  • 4xx показывает проблемы на стороне клиента (валидация)
  • 5xx требует анализа логов сервера

Для интеграции:

  • 429 требует реализации backoff стратегии
  • 202 Accepted используется для асинхронных операций
  • 304 оптимизирует трафик через кэширование

Best Practices

  • Всегда возвращай правильный код, не просто 200 для всего
  • Используй 422 Unprocessable Entity для валидационных ошибок (семантическая, а не синтаксическая)
  • Для async операций используй 202 + Location header
  • Логируй и мониторь распределение статус-кодов