Und ist es konfigurierbar? Kann ich Tomcat so einrichten, dass eine URL mit beispielsweise 200 KB Abfrageparametern erfolgreich an das enthaltene Servlet weitergeleitet wird?
Ja, ich weiß, man sollte POST verwenden, wenn Sie viele Daten haben. Das ist in diesem speziellen Fall eine weniger angenehme Option. Die enthaltene Anwendung (eine Suchmaschine) erwartet, dass eine GET-Anforderung eine Suche durchführt.
server.xml
Konfiguration das Standardlimit von 8192 durchgearbeitet, ohne es zu bemerken, und es plötzlich erreicht. Schmerzhafte Nachricht: Es wurde nichts darüber protokolliert, die Verbindungen wurden stillschweigend getrennt (ich kann mich nicht mehr an den HTTP-Status erinnern). Ich bin zuvor über die Dokumentation unter tomcat.apache.org/tomcat-5.5-doc/config/http.html gestolpert , habe jedoch weder denmaxHttpHeaderSize
Namen noch die Beschreibung mit den Abfrageparametern der GET-Anforderung verknüpft.Die Länge einer HTTP-GET-Anforderung wird von RFC2616 nicht erzwungen , wie Microsoft für die Unterstützungsseite für die maximale Länge des IE meldet .
So ist die maximale Länge GET ein Client (Browser) verwandtes Problem . Wenn Ihre App von Personen verwendet wird, die Sie zur Verwendung eines bestimmten Browsers zwingen können, können Sie einfach die Länge ermitteln, die dieser Browser unterstützt.
In jedem Fall schlage ich vor, auf der Wikypedia- Seite nachzuschlagen, welche Browserprobleme in der Abfragezeichenfolge auftreten (der Teil der Anforderung, der Parameter für serverseitige Apps enthält, der nach dem "?"
Natürlich wird Tomcat auf der Serverseite vielleicht auch ein Limit setzen. RFC sagt:
Sie können also leicht testen, ob Tomcat ein Limit hat, und herausfinden, was dieses Limit ist, indem Sie einfach verschiedene Anforderungen verwenden, beginnend mit einer sehr langen, die den Fehler ausgibt und um die Hälfte sinkt. Verwenden Sie dann die Bisektionsmethode, um schnell den genauen Wert zu finden.
quelle
Für den AJP-Connector müssen Sie das
packetSize
Attribut anpassen :quelle
ProxyIOBufferSize 65536
in Ihrer httpd-Konfiguration festlegen .Sie können die Konfiguration auf dem Tomcat-Server ändern (.. \ Tomcat 6.0 \ conf \ server.xml).
<Connector port = "8983" maxHttpHeaderSize = "100000" protocol = "HTTP / 1.1" connectionTimeout = "20000" redirectPort = "8443" />
quelle