431
Средняя важность — нужна диагностика

Ошибка 431 — HTTP-статусы

Что это значит

Сервер отказывается обрабатывать запрос, потому что суммарный размер всех HTTP-заголовков превышает допустимый лимит. Это защитный механизм, предотвращающий атаки типа переполнения буфера или DoS. Пользователь видит в браузере сообщение об ошибке 431, страница не загружается. В логах сервера фиксируется превышение лимита заголовков.

Вероятные причины

  • Слишком большие cookie-файлы, передаваемые в заголовке Cookie
  • Некорректно настроенный клиент или прокси добавляет избыточные заголовки
  • Баг в браузере или расширении, вызывающий циклическое добавление заголовков
  • Серверный лимит на размер заголовков установлен слишком низко
  • Атака злоумышленника с целью вызвать отказ в обслуживании
  • Проблемы с балансировщиком нагрузки или CDN, которые модифицируют заголовки
  • Использование устаревшего HTTP-клиента, не поддерживающего сжатие заголовков
  • Ошибка в приложении, приводящая к бесконечному редиректу с накоплением заголовков

Что делать — по порядку

  1. Очистить cookie и кеш браузера, затем повторить запрос
  2. Отключить расширения браузера, особенно те, что работают с заголовками
  3. Проверить запрос с помощью curl или Postman, чтобы исключить влияние браузера
  4. Увеличить лимит на размер заголовков в конфигурации веб-сервера (например, large_client_header_buffers в nginx, LimitRequestFieldSize в Apache)
  5. Проверить логи сервера на предмет точного размера заголовков и определить, какие заголовки превышают лимит
  6. Оптимизировать cookie: уменьшить количество и размер данных, хранящихся в cookie
  7. Настроить сжатие заголовков (HTTP/2 HPACK) или перейти на HTTP/2
  8. Проверить цепочку прокси и CDN на предмет добавления избыточных заголовков

Нажимайте на пункты, чтобы отмечать выполненные.

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

Что делать, если ошибка 431 появляется на всех сайтах?

Скорее всего проблема в браузере или расширениях. Очистите cookie, отключите расширения, попробуйте другой браузер.

Может ли ошибка 431 быть вызвана атакой?

Да, злоумышленник может намеренно отправить запрос с огромными заголовками, чтобы вызвать отказ в обслуживании. Сервер защищается, возвращая 431.

Как увеличить лимит заголовков в Nginx?

Используйте директиву large_client_header_buffers, например: large_client_header_buffers 4 16k;

Почему ошибка 431 возникает только иногда?

Возможно, проблема связана с динамическими заголовками, например, с растущими cookie или токенами аутентификации.

Ошибка 431 и 413 — это одно и то же?

Нет. 413 Payload Too Large — превышен размер тела запроса, а 431 — превышен размер заголовков.

Источники