JAVA -tomcat- Anforderungsheader ist zu groß

Lesezeit: 6 Minuten

Benutzer-Avatar
Sarthak Srivastava

INFO: Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Request header is too large
    at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:512)
    at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:501)
    at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:171)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:996)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:722

Wie könnte ich das in meiner Spring-Webanwendung lösen?

Ich hatte diesen Thread durchlaufen. Request-Header ist zu groß

  • Hinweis: Das hat meiner Meinung nach nichts mit Eclipse zu tun.

    – Geisterkatze

    27. September 2016 um 9:05 Uhr

  • Haben Sie die HTTP-Pakete für diese Anfrage erfasst und versucht, die Header anzuzeigen?

    – Himanshu Bhardwaj

    27. September 2016 um 9:07 Uhr


  • Ich denke, es sollte einige Konfigurationsänderungen in Tomcat geben, unabhängig von Eclipse @GhostCat

    – Sarthak Srivastava

    27. September 2016 um 9:07 Uhr


  • Ich muss wissen, welche Konfigurationsänderungen und wo ich in meiner Spring-App oder Tomcat vornehmen muss? @Himanshu

    – Sarthak Srivastava

    27. September 2016 um 9:08 Uhr

Benutzer-Avatar
Jay Ehsaniara

Hier ist die Frage, gibt es eine Begrenzung für HTTP-Header? Die Antwort ist Nein. Es gibt keine Begrenzung aber Webserver begrenzen die Größe ihrer eingehenden Anforderungsheader sogar in POST-Anforderungen, daher erhalten wir 413 (Anforderungsheader ist zu groß). Diese Einschränkung umfasst Anforderungszeilen- und Kopfzeilenfelder.

http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestfieldsize

https://tomcat.apache.org/tomcat-5.5-doc/config/http.html

http://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers

Maximale HTTP-Header-Werte?


In meinem Fall hatte ich SpringBoot 1.5.8 und verwendete HTTP POST, musste jedoch hinzufügen:

server.max-http-header-size=10000000 

in application.properties.

  • Ich habe MB zum Größenwert 10000000 hinzugefügt, um 10000000 MB zu erhalten. weil es den folgenden Fehler gibt Failed to bind properties under ‘server.max-http-header-size’ to org.springframework.util.unit.DataSize:

    – Mumbai

    27. Februar 2020 um 16:39 Uhr


  • 10000000 MB sind fast 10 TB. Planen Sie, 10 TB im Header zu senden?

    – Jay Ehsaniara

    27. Februar 2020 um 19:16 Uhr

  • Ich habe nur darauf hingewiesen, dass ich MB zum Wert hinzufügen musste, damit es für mich funktioniert, ich habe 1 MB verwendet

    – Mumbai

    28. Februar 2020 um 13:35 Uhr

  • Ich musste stattdessen server.tomcat.max-http-header-size verwenden

    – TomTasche

    21. Oktober 2020 um 11:46 Uhr

Die maximale Größe des Anforderungs- und Antwort-HTTP-Headers, angegeben in Bytes. Wenn nicht angegeben, wird dieses Attribut auf 4096 (4 KB) gesetzt.

Um zu vermeiden, zu bekommen Error parsing HTTP request header error können Sie auf diese Weise den folgenden Wert erhöhen.

Gehen Sie zu folgendem Ort: $TOMCAT_HOME/conf/server.xml

Im server.xml ändere das HTTP/1.1 Connector eingeben und einstellen maxHttpHeaderSize zu “65536” (64 KB in Bytes) wie unten gezeigt:

<Connector port="8080" maxHttpHeaderSize="65536" protocol="HTTP/1.1" ... />

Oder

Sie können die POST-Methode verwenden, die laut Tomcat bis zu 2 Megabyte tragen kann.

Die maximale Größe in Bytes des POST, die von der Analyse der FORM-URL-Parameter des Containers 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) gesetzt.

Ich hoffe, diese Informationen helfen Ihnen weiter..

Benutzer-Avatar
Sarthak Srivastava

Gelöst! Ich habe HTTP GET anstelle von HTTP POST verwendet. Technisch habe ich gesehen, dass HttpGet Probleme haben wird, wenn die URL-Länge 2000 Zeichen überschreitet. In diesem Fall ist es besser, HttpPost zu verwenden oder die URL aufzuteilen. Browser haben Grenzen zwischen 2kb und 8kb

Tomcat: Request-Header zu groß

Mit Spring Boot 2,4 Zoll application.properties:

server.max-http-header-size=10MB

Es geht nicht um POST oder GET, sondern um die Einrichtung der Header-Größenbeschränkung für den von Ihrer Anwendung verwendeten Tomcat.

Sie können dies jederzeit mithilfe der folgenden App-Eigenschaften steuern und konfigurieren: server.tomcat.max-http-header-size=1024

Wobei 1024 in Byte ist.

  • Viele Antworten scheinen hier Kopfzeilen und Abfragezeichenfolge/Anforderungstext zu verwechseln.

    – Christoph Schultz

    7. Juni 2021 um 19:35 Uhr

  • Für Springboot 2.x server.max-http-header-size=1KB

    – Ele

    4. August 2021 um 10:29 Uhr

Benutzer-Avatar
kimy82

Ich weiß, es ist ein alter Beitrag. Ich denke jedoch, dass es gut ist, einige Bits zu klären.

  • Mit dem Parameter _server.tomcat.max-http-header-size=max_wanted_size_ ändern Sie den Server so, dass er bis zu max_wanted_size akzeptiert, aber selbst wenn Sie diesen auf 10 MB setzen, schneidet der Browser Ihren Anforderungsparameter auf die maximale Größe des Browsers. Ich habe es in Chrome versucht und es scheint ungefähr 150-200 KB zu sein.
  • Das java.lang.IllegalArgumentException geschieht auf dem Server und hat nichts mit dem Browser zu tun. Daher sollte das Ändern der server.tomcat.max-http-header-size gut genug sein und es passiert, wenn die GET-Methode verwendet wird, aber es kann auch passieren, wenn die POST-Methode verwendet wird (im POST-Fall sollte der maxPostSize-Parameter geändert werden).

  • Viele Antworten scheinen hier Kopfzeilen und Abfragezeichenfolge/Anforderungstext zu verwechseln.

    – Christoph Schultz

    7. Juni 2021 um 19:35 Uhr

  • Für Springboot 2.x server.max-http-header-size=1KB

    – Ele

    4. August 2021 um 10:29 Uhr

Benutzer-Avatar
Charlie Arehart

Ich werde diesem Problem eine andere “Antwort” hinzufügen: Das Problem könnte sein zu viele oder zu große Kekseim Browser des Benutzers, der die Seite besucht, die den Fehler ausgibt.

Während sich die meisten (verständlicherweise) darauf konzentriert haben, Tomcat so zu ändern, dass er einen größeren Header ERLAUBT, möchte ich darauf hinweisen, dass ich in einem Fall, in dem ich diesen Fehler erlebt habe, in der Lage war, meine Browser-Entwicklungstools zu verwenden, um zu sehen, dass es irgendwie einen sehr gab Eine große Anzahl von Cookies wird an die Website gesendet, die den Fehler verursacht hat. (Sie schienen so zu sein, dass ich das Gefühl hatte, dass etwas auf dem Server einen Fehler gemacht hatte, als sie so viele, wie sie genannt hatten, erstellt hatten, die nahezu Duplikate voneinander waren, mit betrügerischen Werten.)

Ich habe die Cookies für diese Website gelöscht (mithilfe der Browser-Entwicklungstools) und jetzt bekomme ich den Fehler nicht mehr. Natürlich kann das Löschen von Cookies zu Problemen wie dem Abmelden von der Website usw. führen. In meinem Fall war das ein kleiner Preis für die erneute Nutzung der Website.

Ich lasse dies für den Fall, dass andere es eines Tages treffen, und entweder die Person sein, die den Fehler erhält (wie ich es war), oder ein Serveradministrator, dessen Benutzer ihn melden, der sie bitten könnte, die Cookies für ihre Website zu löschen (es gibt viele Möglichkeiten natürlich und Websites, um zu helfen).

  • Vielen Dank, dass Sie das so gelassen haben. Hatte genau das gleiche Problem mit meiner GeoServer-Instanz.

    – Napuu

    21. April um 9:07 Uhr

1055110cookie-checkJAVA -tomcat- Anforderungsheader ist zu groß

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy