Существует ли допустимый максимально допустимый размер для заголовков HTTP? Если так, то, что это? Если нет, то является ли это чем-то специфичным для сервера или является общепринятым стандартом, разрешающим заголовки любого размера?
http
http-headers
Cory
источник
источник
Как сказано выше в vartec, спецификация HTTP не определяет ограничение, однако многие серверы определяют по умолчанию. Это означает, что, практически говоря, нижний предел составляет 8K . Для большинства серверов это ограничение применяется к сумме строки запроса и ВСЕХ полей заголовка (поэтому держите ваши куки короткими).
Стоит отметить, что nginx по умолчанию использует системный размер страницы, который в большинстве систем составляет 4 КБ. Вы можете проверить с помощью этой крошечной программы:
pagesize.c:
Скомпилируйте и
gcc -o pagesize pagesize.c
запустите./pagesize
. Мой сервер Ubuntu от Linode покорно сообщает мне, что ответ 4k.источник
LimitRequestLine
иLimitRequestFieldSize
применяется к каждой строке заголовка HTTP в отдельности ... а не к "сумме ..."Значения заголовка HTTP ограничены реализациями сервера. Спецификация Http не ограничивает размер заголовка.
Большинство серверов вернут
413 Entity Too Large
или исправят ошибку 4xx, когда это произойдет.Неограниченный размер заголовка HTTP защищает сервер от атак и может снизить его способность обслуживать органический трафик.
Источник
источник
Вот предел самого популярного веб-сервера
источник
Я также обнаружил, что в некоторых случаях причиной 502/400 в случае многих заголовков может быть большое количество заголовков независимо от их размера. из документов
https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.http.maxhdr
источник