Какие HTTP-статус коды указывают на ошибку клиента?

«Какие HTTP-статус коды указывают на ошибку клиента?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Ошибки клиента обозначаются статус-кодами класса 4xx. Сервер указывает, что проблема в запросе.

Основные коды:

  • 400 Bad Request — неверный синтаксис запроса (например, некорректный JSON, невалидные параметры).
  • 401 Unauthorized — требуется аутентификация (клиент не представил учетные данные).
  • 403 Forbidden — доступ запрещён (клиент аутентифицирован, но не имеет прав).
  • 404 Not Found — запрошенный ресурс не найден на сервере.
  • 429 Too Many Requests — клиент превысил лимит запросов (rate limiting).

Пример ответа API с кодом 400:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Missing required field: 'email'"
  }
}

Почему это важно: Корректные 4xx коды помогают клиенту понять, как исправить запрос, в отличие от 5xx кодов, которые указывают на внутреннюю ошибку сервера.