Czy jest akceptowany maksymalny dozwolony rozmiar nagłówków HTTP? Jeśli tak, co to jest? Jeśli nie, to czy jest to coś, co jest specyficzne dla serwera, czy też jest akceptowanym standardem pozwalającym na nagłówki dowolnej wielkości?
http
http-headers
Cory
źródło
źródło
Jak mówi vartec powyżej, specyfikacja HTTP nie określa limitu, jednak wiele serwerów domyślnie. Oznacza to, że praktycznie rzecz biorąc, dolna granica wynosi 8K . W przypadku większości serwerów limit ten dotyczy sumy wiersza żądania i WSZYSTKICH pól nagłówka (dlatego pliki cookie powinny być krótkie).
Warto zauważyć, że nginx domyślnie używa rozmiaru strony systemowej, który w większości systemów wynosi 4K. Możesz sprawdzić za pomocą tego małego programu:
Pagesize.c:
Skompiluj z
gcc -o pagesize pagesize.c
następnie uruchom./pagesize
. Mój serwer Ubuntu z Linode sumiennie informuje mnie, że odpowiedź to 4k.źródło
LimitRequestLine
iLimitRequestFieldSize
dotyczy każdego wiersza nagłówka HTTP osobno ... nie „suma ...”Wartości nagłówka HTTP są ograniczone przez implementacje serwera. Specyfikacja HTTP nie ogranicza rozmiaru nagłówka.
Większość serwerów zwróci
413 Entity Too Large
lub usunie błąd 4xx, gdy to nastąpi.Nieograniczony rozmiar nagłówka HTTP utrzymuje serwer narażony na ataki i może obniżyć jego zdolność do obsługi ruchu organicznego.
Źródło
źródło
Oto limit najpopularniejszego serwera WWW
źródło
Odkryłem również, że w niektórych przypadkach przyczyną 502/400 w przypadku wielu nagłówków może być duża liczba nagłówków bez względu na rozmiar. z dokumentów
https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.http.maxhdr
źródło