Что означает HTTP статус-код 400 (Bad Request)?

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

Ответ

HTTP статус-код 400 Bad Request указывает, что сервер не может (или отказывается) обработать клиентский запрос из-за ошибки, которая воспринимается как вина клиента (client error).

Типичные причины:

  • Неверный синтаксис запроса (например, некорректный JSON или XML в теле).
  • Отсутствие обязательных параметров или заголовков.
  • Неподдерживаемый метод запроса для данного URL.
  • Превышение допустимого размера запроса.
  • Несоответствие типа данных (например, передача числа вместо строки).

Пример сценария и ответа: Запрос:

POST /api/users HTTP/1.1
Content-Type: application/json

{
    "name": "Alice",
    "email": "not-an-email", // Некорректный формат email
    "age": "twenty-five"     // Ожидается число, передана строка
}

Ответ сервера:

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

{
    "error": "Validation failed",
    "details": [
        "Field 'email' must be a valid email address",
        "Field 'age' must be a number"
    ]
}

Что проверять в тестах: валидацию всех входных параметров, форматы данных (JSON, XML), обязательные поля и корректность заголовков (например, Content-Type).