Gymterview
junior

Какие существуют коды HTTP-ответов и когда их использовать?

HTTP-коды ответов делятся на 5 классов по первой цифре, определяющей категорию результата обработки запроса.

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

Код Название Описание
100 Continue Сервер получил заголовки и клиент может продолжать отправку тела
101 Switching Protocols Сервер переключает протокол (например, на WebSocket)

2xx — Успешные

Код Название Когда использовать
200 OK Успешный GET, PUT, PATCH, DELETE
201 Created Успешный POST, ресурс создан. Заголовок Location указывает URI нового ресурса
202 Accepted Запрос принят, но обработка ещё не завершена (асинхронная операция)
204 No Content Успешный запрос, тело ответа отсутствует (обычно DELETE или PUT)

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

Код Название Когда использовать
301 Moved Permanently Ресурс перемещён на постоянной основе
302 Found Временное перенаправление
304 Not Modified Ресурс не изменился с момента последнего запроса (кэширование)

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

Код Название Когда использовать
400 Bad Request Некорректный запрос (невалидный JSON, нарушение валидации)
401 Unauthorized Не пройдена аутентификация (неверный или отсутствующий токен)
403 Forbidden Аутентификация пройдена, но нет прав доступа (авторизация)
404 Not Found Ресурс не найден
405 Method Not Allowed HTTP-метод не поддерживается для данного URI
409 Conflict Конфликт состояния (например, попытка создать дубликат)
415 Unsupported Media Type Неподдерживаемый Content-Type
422 Unprocessable Entity Запрос синтаксически верен, но семантически некорректен
429 Too Many Requests Превышен лимит запросов (Rate Limiting)

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

Код Название Когда использовать
500 Internal Server Error Непредвиденная ошибка сервера
502 Bad Gateway Некорректный ответ от вышестоящего сервера
503 Service Unavailable Сервер временно недоступен (обслуживание, перегрузка)
504 Gateway Timeout Вышестоящий сервер не ответил вовремя

Типичное использование в REST API

Пример
POST   /api/users       → 201 Created
GET    /api/users       → 200 OK
GET    /api/users/42    → 200 OK или 404 Not Found
PUT    /api/users/42    → 200 OK или 204 No Content
PATCH  /api/users/42    → 200 OK
DELETE /api/users/42    → 204 No Content

На собеседовании: достаточно знать ключевые коды: 200, 201, 204, 301, 304, 400, 401, 403, 404, 409, 429, 500, 503. Частая ошибка — путать 401 (аутентификация) и 403 (авторизация).