Ich habe eine Webanwendung, die XmlHttpRequest- Objekten mithilfe der setRequestHeader- API Kontextinformationen hinzufügt . Ich verwende einen benutzerdefinierten Headernamen (z. B. X-Foo) und einen strukturierten JSON- Wert. Es ist nicht Teil des URL QueryString- oder POST-Körpers, da es sich um Metainformationen zur Anforderung handelt.
Gibt es eine praktische Größenbeschränkung für den Header-Wert? Wenn mein JSON abgeschnitten wird, kann es nicht mehr analysiert werden. Ich beschäftige mich am meisten mit Beschränkungen in Apache 2, Tomcat 6 und IIS 7. Ich habe eine Google-Suche nach einer Beschränkung der Länge von http-Headern durchgeführt , aber viele der Ergebnisse scheinen veraltet zu sein. Es gibt einige relevante Kommentare in Wie groß kann eine Benutzeragentenzeichenfolge werden? aber nicht so spezifisch wie ich möchte.
Bearbeiten: Ich bin gerade auf diese ähnliche Frage gestoßen - Maximum bei http-Header-Werten?
Antworten:
Ja, aber die Grenzwerte sind konfigurierbar und plattformabhängig. Beispielsweise hat Tomcat ein Standardlimit von 8 KB. Ich glaube, dass IIS 6, das sich bei IIS 7 nicht sicher ist, ein Limit von 16 KB hat. Ich bin darauf gestoßen, als ich die integrierte Windows-Authentifizierung für mehrere Websites verwendet habe. Es stellte sich heraus, dass mein Sicherheitstoken zu groß war, als es in den Header codiert wurde. Zum Glück sind diese konfigurierbar. Die Registrierungseinstellungen für IIS finden Sie unter http://support.microsoft.com/kb/820129 . Ich glaube, die wichtigsten Einstellungen, die geändert werden müssen, sind MaxFieldLength (pro Header-Größe) und MaxRequestBytes (Gesamtgröße der Anforderung).
quelle
Obwohl jede Webserver-Software einige Einschränkungen aufweist, gibt es einen Unterschied, ob es ein Limit für die HTTP-Anforderungszeile plus Headerfelder oder für jedes Headerfeld gibt.
Hier ist eine Zusammenfassung:
Fazit: Um von allen oben genannten Webservern akzeptiert zu werden, sollten die Anforderungszeile und die Headerfelder einer Anforderung 8190 Byte nicht überschreiten . Dies ist auch die Grenze für jedes Header-Feld (effektiv noch weniger).
quelle
Für Apache habe ich diesen Artikel zu Serverlimits für Apache-Sicherheit gefunden, in dem die folgenden Anweisungen aufgeführt sind:
Für Nginx steuert die Anweisung large_client_header_buffers von HttpCoreModule Folgendes:
quelle
Während Sie den Server konfigurieren können, ist es unwahrscheinlich, dass Sie den gesamten Weg über Firewalls, Load Balancer und Proxys konfigurieren können. Wenn Sie die Größe des Headers klein halten, bleiben Probleme vermieden.
quelle
Der Flash Media Server 4.5 hat eine sehr kurze Standard-Header-Längenbeschränkung, die dazu führen kann, dass der Server einfach nicht reagiert, insbesondere unter Umständen, in denen eine moderate Cookie-Last vorliegt.
Siehe: Flash Media Server 4.5 Konfiguration und Verwaltung: Konfigurieren des Servers Konfigurieren des Apache-HTTP-Servers: Geben Sie die maximale Länge der HTTP-Headerzeile an
Wenn Sie dies hier einfügen, falls die Beschränkung der Headergröße auf Flash Media Server jemand anderen beißt.
quelle