Gibt es eine maximale Größe für den Inhalt von POST-Parametern?

70

Ich behebe eine Java-App, bei der XML mithilfe von HTTP POST und Servlet zwischen zwei Systemen gesendet wird. Ich vermute, dass das Problem darin besteht, dass das XML viel zu groß wird. Ist es möglich, dass dies das Problem ist? Gibt es eine Grenze?

Wenn es nicht funktioniert, gibt das request.getParameter("message")auf der Verbraucherseite null zurück. Beide Apps laufen auf TomCat. Ein XML-Dokument mit einer Größe von 1,73 MB schafft es beispielsweise nicht.

l3dx
quelle

Antworten:

107

Gemäß dieser ist der Standard 2 MB für Ihren <Connector>.

maxPostSize = Die maximale Größe des POST in Byte, die beim Parsen der URL-Parameter des Containers FORM verarbeitet wird. Das Limit kann deaktiviert werden, indem dieses Attribut auf einen Wert kleiner oder gleich 0 gesetzt wird. Wenn nicht angegeben, wird dieses Attribut auf 2097152 (2 Megabyte) festgelegt.

Bearbeiten Sie die Datei server.xml von Tomcat. Fügen Sie im <Connector>Element ein Attribut hinzu maxPostSizeund legen Sie einen größeren Wert (in Byte) fest, um das Limit zu erhöhen.

Having said that , wenn dies das Problem ist, sollten Sie auf den Linien der eine Ausnahme bekommen haben Post data too bigin tomcat

Für weitere Informationen

JoseK
quelle
Danke für deine Antwort. Ich habe es geschafft, es zum Laufen zu bringen. Ich habe keine Ausnahmen bekommen, aber
soweit
Ich hatte zwar das gleiche Problem, aber ich glaube, ich habe den erwähnten Fehler mit jboss 4 nicht erhalten. Andererseits hätte ich es einfach übersehen können
Toskan
2
Ist es möglich, dieses Limit in meiner Anwendung anzugeben, anstatt die server.xml von tomcat zu bearbeiten?
Rajat Gupta
In meinem Tomcat 8 bedeutete der Wert für maxPostSize = 0 nicht "unbegrenzt". Ein Wert von -1 hat den Trick gemacht.
s1m3n
6

Es gibt keine definierte maximale Größe für HTTP-POST-Anforderungen. Wenn Sie eine solche Beschränkung bemerken, handelt es sich um eine willkürliche Beschränkung Ihres HTTP-Servers / Clients.

Sie erhalten möglicherweise eine bessere Antwort, wenn Sie angeben, wie groß das XML ist.

Morfildur
quelle
1
In der Inline Apache Tomcat-Dokumentation für TOMCAT 5.5 wird der Standardwert für maxPostSize (falls nicht angegeben) auf 2097152 (2 Megabyte) festgelegt
Halayem Anis
0

Ja, es gibt maximal 2 MB und es kann durch eine solche Konfigurationsänderung erhöht werden. Wenn Ihr POST-Text nicht in Form einer mehrteiligen Datei vorliegt, müssen Sie möglicherweise die max-http-post-Konfiguration für tomcat in die Anwendungs-yml-Konfigurationsdatei einfügen.

Erhöhen Sie die maximale Größe jeder mehrteiligen Datei auf 10 MB und die Gesamtnutzlastgröße auf maximal 100 MB

 spring:
    servlet:
      multipart:max-file-size: 10MB
      multipart:max-request-size: 100MB
 

Festlegen der maximalen Größe von Post-Anfragen, bei denen es sich möglicherweise nur um die Formulardaten im Zeichenfolgenformat handelt, auf ~ 10 MB

 server:
    tomcat:
        max-http-post-size: 100000000 # max-http-form-post-size: 10MB for new version

Möglicherweise müssen Sie dies für die neueste Sprintboot-Version hinzufügen ->

Server: Tomcat: Max-http-Formular-Post-Größe: 10 MB

Asif Karim Bherani
quelle