← Назад к вопросам
Какие знаешь 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
| Операция | Метод | Успех | Ошибка клиента | Ошибка сервера |
|---|---|---|---|---|
| Создание | POST | 201 | 400, 409 | 500 |
| Чтение | GET | 200 | 404 | 500 |
| Обновление | PUT/PATCH | 200, 204 | 400, 404, 409 | 500 |
| Удаление | DELETE | 204 | 404 | 500 |
| Aутентификация | POST | 200 | 401, 403 | 500 |
Применение в System Analysis
При проектировании API:
- Выбирать правильные коды для каждого сценария
- Документировать возможные ошибки и их обработку
- Учитывать retry логику для 5xx и 429
При анализе проблем:
- 3xx может указывать на неправильные редиректы
- 4xx показывает проблемы на стороне клиента (валидация)
- 5xx требует анализа логов сервера
Для интеграции:
- 429 требует реализации backoff стратегии
- 202 Accepted используется для асинхронных операций
- 304 оптимизирует трафик через кэширование
Best Practices
- Всегда возвращай правильный код, не просто 200 для всего
- Используй 422 Unprocessable Entity для валидационных ошибок (семантическая, а не синтаксическая)
- Для async операций используй 202 + Location header
- Логируй и мониторь распределение статус-кодов