EnotPRO Logo EnotPRO Logo EnotPRO

Коды статуса

HTTP-коды статуса — это трехзначные числа, которые сервер отправляет клиенту, чтобы сообщить результат обработки запроса. Это как "статус доставки" в службе доставки:

  • 200 — "Заказ доставлен успешно!"
  • 404 — "Адрес не найден"
  • 500 — "На складе проблемы"

Классификация по первым цифрам

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

"Я получил твой запрос, продолжаю работать..."

Код Название Значение
100 Continue "Продолжай, я готов принять тело запроса"
101 Switching Protocols "Переключаю протокол" (HTTP → WebSocket)
102 Processing "Обрабатываю, жди" (для долгих операций)
103 Early Hints "Вот предварительные данные"

Пример из жизни: Клиент отправляет большой файл. Сервер: "100 Continue" → "OK, отправляй дальше!"

2xx — Успех (Success)

"Всё прошло отлично, держи что хотел!"

Код Название Когда использовать
200 ✅ OK Стандартный ответ на успешные GET, POST, PUT
201 ✅ Created Ресурс успешно создан (после POST)
202 ✅ Accepted "Принял в обработку" (асинхронные задачи)
204 ✅ No Content Успешно, но без тела ответа (удаление)
206 ✅ Partial Content Частичный контент (для потоковой передачи)

Примеры:

http

200 — Получил данные пользователя

HTTP/1.1 200 OK Content-Type: application/json {"id": 1, "name": "John"}

201 — Создал новый заказ

HTTP/1.1 201 Created Location: /api/orders/123 # Где найти новый ресурс

204 — Удалил успешно (тела нет)

HTTP/1.1 204 No Content

3xx — Перенаправление (Redirection)

"Ищи не здесь, а там..."

Код Название Постоянность Сохраняет метод?
301 Moved Permanently Навсегда Обычно GET
302 Found Временно GET
303 See Other — Всегда GET
307 Temporary Redirect Временно Сохраняет
308 Permanent Redirect Навсегда Сохраняет

Разница 301 vs 308:

301 — "Страница переехала навсегда, поисковики обновляют ссылки"

308 — "Переехала навсегда, И метод запроса сохрани (POST останется POST)"

Пример:

http HTTP/1.1 301 Moved Permanently Location: https://new-site.com/page

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

"Ты что-то неправильно сделал..."

Код Название Причина
400 ❌ Bad Request "Не могу понять твой запрос" (синтаксис)
401 ❌ Unauthorized "Представься сначала" (нет аутентификации)
403 ❌ Forbidden "Я тебя знаю, но не пущу" (нет прав)
404 ❌ Not Found "Здесь ничего нет"
405 ❌ Method Not Allowed "GET можно, а POST — нет"
408 ❌ Request Timeout "Слишком долго думал, что отправить"
409 ❌ Conflict "Конфликт данных" (дубликат email)
429 ❌ Too Many Requests "Слишком много запросов, успокойся"

Важные различия

401 vs 403

  • 401 — "Кто ты?" (нет токена)
  • 403 — "Я знаю кто ты, но доступ закрыт"

400 vs 422

  • 400 — "Твой JSON сломан"
  • 422 — "JSON ок, но логика нарушена" (например, отрицательная цена)

Пример 404

  • http
  • HTTP/1.1 404 Not Found
  • Content-Type: text/html
Страница не найдена

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

"У меня проблемы, это не твоя вина..."

Код Название Причина
500 🔥 Internal Server Error "Что-то пошло не так" (общая ошибка)
501 🔥 Not Implemented "Такой метод не поддерживаю"
502 🔥 Bad Gateway "Прокси получил фигню от другого сервера"
503 🔥 Service Unavailable "На обслуживании, зайдите позже"
504 🔥 Gateway Timeout "Прокси долго ждал ответа"

Разница 502 vs 504:

  • 502 — "Соседний сервер ответил ерундой"
  • 504 — "Соседний сервер вообще не ответил"

Примеры

В SEO

  • 301 — передает "SEO-силу" на новую страницу
  • 404 — говорит поисковикам "не индексируй"
  • 503 — "временно не работаю, но скоро вернусь"

🛠️ Как правильно выбирать код? Чек-лист для разработчика:

Успешные операции

  • Данные получены → 200
  • Создал новый ресурс → 201 + заголовок Location
  • Удалил/обновил без ответа → 204

Ошибки клиента

  • Неправильный запрос → 400
  • Нет авторизации → 401
  • Нет прав → 403
  • Не существует → 404
  • Слишком частые запросы → 429

Ошибки сервера

  • Непонятная ошибка → 500
  • База данных упала → 503
  • Завис внешний сервис → 502

Антипаттерны

  • ❌ Всегда возвращать 200, даже при ошибках
  • ❌ Возвращать 500 при ошибке валидации
  • ❌ Использовать 302 для постоянных редиректов
  • ❌ Возвращать 404 когда нужно 403 (раскрываем структуру)
© 2026 EnotPRO. Все права защищены.