Monitor404

Ошибка 400 Bad Request: что значит и как исправить

Ошибка 400 Bad Request означает, что сервер не стал обрабатывать запрос, потому что счёл его некорректным: сломан синтаксис, слишком большой заголовок или cookie, неверное тело запроса. Чаще всего помогает очистка cookie и проверка адреса.

Обновлено 11 октября 2026 г.

Что значит ошибка 400

По RFC 9110 (раздел 15.5.1) сервер возвращает 400, когда не может или не хочет обрабатывать запрос из-за того, что воспринимает его как ошибку клиента: неверный синтаксис, неправильная структура сообщения или подмена маршрутизации. Это общий код: он не уточняет, что именно не так, и подробности нужно искать в теле ответа и логах сервера.

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

{"error":"invalid_json","message":"Unexpected token } at position 41"}

Частые причины 400

  • Слишком большие cookie или заголовки. Типичное сообщение nginx: «400 Request Header Or Cookie Too Large».
  • Ошибки в URL: недопустимые символы, неэкранированные пробелы, повреждённая ссылка.
  • Некорректное тело запроса: сломанный JSON, неверный Content-Type, обрезанная загрузка файла.
  • Простой HTTP на порт HTTPS (сообщение nginx «The plain HTTP request was sent to HTTPS port»).
  • Неверный заголовок `Host` или нарушение формата запроса клиентом или прокси.
  • Слишком большой запрос на стороне веб-приложения или CDN.

Что делать посетителю

  1. Проверьте адрес: нет ли в нём лишних символов, пробелов, обрывков чужой ссылки.
  2. Очистите cookie и кеш для этого сайта: раздутые cookie самая частая причина 400 на нормальных сайтах.
  3. Откройте страницу в режиме инкогнито или другом браузере и отключите расширения.
  4. Если ошибка возникла при загрузке файла, проверьте размер и формат файла.
  5. Если ничего не помогло, сообщите владельцу сайта точный адрес и время ошибки.

Что делать владельцу и разработчику

Начните с журнала ошибок веб-сервера: там обычно видна точная причина. Затем по сценариям.

Слишком большие заголовки и cookie

nginx: увеличить буферы для заголовков (по умолчанию 4 буфера по 8k)
http {
    client_header_buffer_size 4k;
    large_client_header_buffers 4 16k;
}
Apache: лимиты (по умолчанию 8190 байт)
LimitRequestFieldSize 16384
LimitRequestLine 16384

Но надёжнее убрать причину, а не поднимать лимиты: сократить число cookie, не хранить в них большие данные, чистить отслеживающие cookie поддоменов.

Некорректные запросы в API

Для ошибок клиента API возвращайте 400 с понятным телом: какое поле не прошло проверку и почему. Это упрощает отладку и снижает число повторных попыток. Для синтаксически верного, но семантически неверного запроса (например, не прошла бизнес-валидация) многие API используют 422.

Express
app.post("/api/subscribe", express.json(), (req, res) => {
  if (typeof req.body.email !== "string" || !req.body.email.includes("@")) {
    return res.status(400).json({ error: "invalid_email" });
  }
  res.status(201).end();
});

Если вы получаете 400 в клиентском коде (в логах request failed with status code 400), проверьте тело запроса, заголовок Content-Type и URL, который реально отправляется: нередко в строку подставляется undefined или лишний символ.

Как найти причину по сообщению сервера

Сообщение или признакВероятная причинаЧто делать
Request Header Or Cookie Too Largeслишком большие заголовки или cookieочистить cookie, увеличить large_client_header_buffers
The plain HTTP request was sent to HTTPS portзапрос по http:// на порт с TLSобращаться по https:// или исправить порт в настройках клиента
Invalid JSON, Unexpected tokenсломанное тело запросапроверить сериализацию и заголовок Content-Type
400 только у части пользователейнакопившиеся cookie конкретного браузераочистить cookie сайта
400 на запросах с кириллицей в URLадрес не закодирован (percent-encoding)кодировать путь и параметры на клиенте

Журнал ошибок nginx обычно лежит в /var/log/nginx/error.log, Apache — в /var/log/apache2/error.log (или /var/log/httpd/error_log). Сопоставьте время запроса с записью: там часто есть точная причина.

Как 400 влияет на SEO

Для поисковых роботов 400 означает, что страница недоступна. Google относит все ошибки 4xx, кроме 429, к одной группе: URL без контента в индекс не попадает, а уже проиндексированные страницы постепенно исключаются. Яндекс также не включает такие страницы в поиск. Постоянный 400 на реальных страницах для робота, например из-за неправильной обработки кириллических URL или заголовков, означает потерю этих страниц в выдаче. Проверьте, что нужные страницы отдают 200 при запросе с обычными заголовками.

Как проверить

Откройте адрес в проверке кода ответа: инструмент отправит запрос как обычный клиент и покажет статус, редиректы и заголовки. Для отладки тела запроса используйте curl -i -X POST -H "Content-Type: application/json" -d '{"a":1}' https://example.com/api.

Частые вопросы

Что значит ошибка 400 Bad Request?

Сервер получил запрос, который не смог разобрать: сломанный синтаксис, лишние символы, слишком большие заголовки или cookie, некорректный JSON.

Как исправить ошибку 400 на сайте, если вы посетитель?

Проверьте адрес, очистите cookie и кеш этого сайта, попробуйте инкогнито или другой браузер. Чаще всего причина в разросшихся cookie.

Чем 400 отличается от 404 и 403?

400: запрос сформирован неправильно. 404: запрос корректен, но ресурса нет. 403: ресурс есть, но доступ запрещён.

Что значит request failed with status code 400?

Так HTTP-клиент (например, axios) сообщает, что сервер ответил 400. Проверьте URL, заголовки и тело запроса, а затем смотрите описание ошибки в теле ответа.

Читайте также