Gibt es eine akzeptierte maximal zulässige Größe für HTTP-Header? Wenn ja, was ist das? Wenn nicht, ist dies etwas Serverspezifisches oder ist der akzeptierte Standard, um Header jeder Größe zuzulassen?
http
http-headers
Cory
quelle
quelle
Wie oben von vartec angegeben, definiert die HTTP-Spezifikation kein Limit, jedoch standardmäßig viele Server. Dies bedeutet praktisch, dass die Untergrenze 8 K beträgt . Bei den meisten Servern gilt diese Begrenzung für die Summe der Felder für die Anforderungszeile und ALLE Header (halten Sie Ihre Cookies also kurz).
Es ist erwähnenswert, dass nginx standardmäßig die Systemseitengröße verwendet, die auf den meisten Systemen 4 KB beträgt. Sie können mit diesem winzigen Programm überprüfen:
pagesize.c:
Kompilieren mit
gcc -o pagesize pagesize.c
dann ausführen./pagesize
. Mein Ubuntu-Server von Linode informiert mich pflichtbewusst über die Antwort 4k.quelle
LimitRequestLine
undLimitRequestFieldSize
gilt für diese ... nicht für die "Summe von ..."HTTP-Header-Werte werden durch Serverimplementierungen eingeschränkt. Die HTTP-Spezifikation schränkt die Headergröße nicht ein.
Die meisten Server geben
413 Entity Too Large
in diesem Fall einen entsprechenden 4xx-Fehler zurück.Die Größe des nicht begrenzten HTTP-Headers hält den Server Angriffen ausgesetzt und kann seine Kapazität zur Bereitstellung von organischem Datenverkehr verringern.
Quelle
quelle
Hier ist die Grenze der beliebtesten Webserver
quelle
Ich fand auch heraus, dass in einigen Fällen der Grund für 502/400 bei vielen Headern in einer großen Anzahl von Headern ohne Rücksicht auf die Größe liegen könnte. aus den Dokumenten
https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.http.maxhdr
quelle