HTTP 400 Bad Request
Общая клиентская ошибка: что-то не так с самим запросом, и сервер отказывается угадывать, что именно.
Что означает HTTP 400
HTTP 400 Bad Request означает, что сервер прочитал запрос и отклонил его как недопустимый, ещё до какой-либо реальной работы. Это универсальная клиентская ошибка: некорректный синтаксис, недопустимые параметры, повреждённые куки или заголовки, которые сервер отказывается обрабатывать.
В отличие от 401 или 403, 400 ничего не говорит о правах доступа — запрос был неисправен уже на входе. API часто прикладывают тело JSON, объясняющее, какое именно поле не прошло валидацию.
Частые причины ошибок 400
- Некорректный JSON или XML в теле запроса (лишние запятые, неверные кавычки, обрезанная полезная нагрузка).
- Отсутствующие или недопустимые параметры запроса, либо значения, не прошедшие серверную валидацию.
- Повреждённые или слишком большие куки — классическая причина устойчивых 400 на крупных сайтах у одного конкретного пользователя.
- Неверный заголовок Content-Type, из-за чего сервер разбирает тело как неправильный формат.
- Ошибки URL-кодирования: неэкранированные пробелы, кавычки или не-ASCII символы в строке запроса.
Как исправить со стороны пользователя
- Перезагрузите страницу; если 400 сохраняется, очистите куки для этого сайта — повреждённые куки самая частая причина.
- Проверьте URL на опечатки или символы, повреждённые при копировании-вставке.
- Попробуйте окно в режиме инкогнито, чтобы исключить расширения, изменяющие запросы.
Как исправить со стороны разработчика
- Проверяйте JSON-полезную нагрузку перед отправкой; логируйте точное тело запроса, полученное сервером.
- Возвращайте тело ответа с указанием недопустимого поля — голый 400 тратит время всех, кто занимается отладкой.
- Проверьте серверные лимиты на размер заголовков и кук (nginx large_client_header_buffers и т.п.).
- Используйте 422 для корректно сформированных, но семантически недопустимых данных, если ваш API их различает.
Пример ответа
HTTP/1.1 400 Bad Request
Content-Type: application/json
{"error":"validation_failed","field":"email","message":"not a valid address"}Частые вопросы
Моя ли это вина как посетителя при ошибке 400?
Обычно причина в устаревших куках или неисправной ссылке, а не в чём-то, что сделали вы. Очистка кук для сайта устраняет большинство случаев.
В чём разница между 400 и 422?
400 означает, что запрос не удалось разобрать или он структурно недопустим; 422 означает, что он разобран корректно, но не прошёл смысловую валидацию. Многие API используют 400 для обоих случаев.
Почему один пользователь получает 400, а у всех остальных всё в порядке?
Почти всегда — слишком большие или повреждённые куки в браузере этого пользователя, превышающие лимиты заголовков на сервере.