Ошибки

Ошибка 431 Request Header Fields Too Large: что значит и как исправить

431 Request Header Fields Too Large — сервер не стал обрабатывать запрос, потому что заголовки слишком большие: все вместе или один из них. Раздуть их могут, например, накопившиеся cookie. Посетителю помогает удалить cookie сайта, а разработчику — разобраться, кто их накапливает.

Обновлено 07.10.2026≈ 3 мин чтения
Содержание 10

Что означает код 431

Код 431 описан в RFC 6585 — дополнении к стандарту HTTP. Он значит: сервер не хочет обрабатывать запрос, потому что заголовки слишком большие — все вместе или какой-то один. Во втором случае в ответе стоит назвать, какой именно заголовок не подошёл. Клиент может отправить запрос снова, уменьшив заголовки. Сохранять ответ 431 в кэше нельзя.

Отвечать именно 431 сервер не обязан: при атаке стандарт допускает, что сервер просто оборвёт соединение.

Кто отвечает 431, а кто 400

СерверОтвет на слишком большие заголовки
nginx400 Bad Request со страницей «Request Header Or Cookie Too Large»
Node.js431, если заголовки больше 16 КБ — это лимит по умолчанию

Поэтому код 431 можно увидеть при разработке — например, открывая приложение на Node.js по адресу localhost:3000.

Если вы посетитель

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

Почему 431 появляется на localhost

Cookie не разделяются по портам: приложения на localhost:3000 и localhost:8080 получают одни и те же cookie для localhost. Если вы запускаете на своём компьютере разные проекты, их cookie копятся вместе и уходят в каждом запросе к localhost, пока заголовки не превысят лимит.

Удалите cookie для localhost в разделе хранилища инструментов разработчика браузера и перезагрузите страницу.

Как поднять лимит в Node.js

Лимит можно задать при запуске:

node --max-http-header-size=32768 server.js

или при создании сервера (с версии Node.js 13.3.0):

http.createServer({ maxHeaderSize: 32768 }, handler);

Значения указывают в байтах; по умолчанию лимит — 16 384 байта. Свойство http.maxHeaderSize только показывает текущий лимит, изменить его нельзя.

Но сначала найдите, что раздувает заголовки: если cookie продолжают копиться, поднятый лимит лишь отложит ошибку.

Что раздувает заголовки

  • Cookie счётчиков, онлайн-чатов, рекламы и A/B-тестов — каждый скрипт добавляет свои.
  • Токены входа (например, JWT) в cookie или в заголовке Authorization: в них бывает много данных.
  • Cookie, которые сайт дописывает при каждом визите и никогда не удаляет.

Если перед приложением стоит nginx

Тогда слишком большие заголовки может отклонить уже nginx — и ответит он не 431, а 400. Лимит в nginx задаёт директива large_client_header_buffers; как её поднять, рассказано в разборе ошибки 400. Поднимайте оба лимита — и в nginx, и в приложении.

Чем 431 отличается от соседних кодов

КодКогда возникает
400Запрос испорчен; nginx отвечает им и на слишком большие заголовки
413Слишком большое тело запроса
414Слишком длинный адрес
431Слишком большие заголовки запроса — например, cookie

Источники

Сверено 6 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 07.10.2026