Какие основные HTTP-коды состояния 4xx и в каких сценариях они возвращаются?

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

Ответ

Коды 4xx (Client Error) указывают, что ошибка произошла по вине клиента (некорректный запрос).

Код Название Типичный сценарий Пример причины
400 Bad Request Сервер не может обработать запрос из-за неверного синтаксиса. Невалидный JSON в теле запроса, отсутствие обязательного поля.
401 Unauthorized Требуется аутентификация для доступа к ресурсу. Запрос без токена или с просроченным/неверным токеном.
403 Forbidden Сервер понял запрос, но отказывается его авторизовать. У пользователя нет прав на удаление чужого ресурса.
404 Not Found Сервер не нашел запрашиваемый ресурс. Несуществующий URL или удаленный объект (например, /api/users/99999).
405 Method Not Allowed Метод не поддерживается для данного ресурса. Вызов DELETE для эндпоинта, который поддерживает только GET и POST.
408 Request Timeout Сервер не дождался полного запроса от клиента. Медленное соединение клиента, большая задержка.
409 Conflict Запрос конфликтует с текущим состоянием сервера. Попытка создать пользователя с уже существующим email.
429 Too Many Requests Клиент превысил лимит запросов (rate limiting). Слишком частые вызовы API (например, >100 запросов в минуту).

Пример ответа 404:

HTTP/1.1 404 Not Found
Content-Type: application/json

{
  "error": "Resource not found",
  "message": "User with id 12345 does not exist",
  "status": 404
}

Важно для тестирования: Проверять не только факт возврата кода 4xx, но и структуру тела ошибки (должна быть информативной для отладки).