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
Comment pourrais-je résoudre ce problème dans mon application Web Spring?
J'avais parcouru ce fil L'en-tête de la demande est trop grand
Résolu! J'utilisais HTTP GET au lieu de HTTP POST. Techniquement, j'ai vu que HttpGet aura un problème si la longueur de l'URL dépasse 2000 caractères. Dans ce cas, il est préférable d'utiliser HttpPost ou de diviser l'URL. Les navigateurs ont des limites allant de 2 Ko à 8 Ko
voici la question, y a-t-il une limite dans les en-têtes HTTP? La réponse est Non . il n'y a aucune limite mais les serveurs Web limitent la taille de leur en-tête de demande entrante même dans les demandes POST donc nous obtenons 413 (L'en-tête de demande est trop volumineux.) Cette limitation inclut la ligne de demande et les champs d'en-tête.
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
Maximum sur les valeurs d'en-tête http?
Dans mon cas, j'avais SpringBoot 1.5.8 et utilisé HTTP POST, mais j'ai dû ajouter:
server.max-http-header-size=10000000
dans application.properties.
Je sais que c'est un ancien poste. Cependant, je pense qu'il est bon de clarifier certains éléments.
Taille maximale de l'en-tête HTTP de demande et de réponse, spécifiée en octets. S'il n'est pas spécifié, cet attribut est défini sur 4096 (4 Ko).
Pour éviter d'obtenir Error parsing HTTP request header
erreur, vous pouvez augmenter la valeur suivante en procédant ainsi.
Accédez à l'emplacement suivant: $Tomcat_HOME/conf/server.xml
Dans server.xml
changer la HTTP/1.1 Connector
entrée et définissez maxHttpHeaderSize
sur "65536" (64 Ko en octets) comme indiqué ci-dessous:
<Connector port="8080" maxHttpHeaderSize="65536" protocol="HTTP/1.1" ... />
Ou
Vous pouvez utiliser la méthode POST elle peut transporter jusqu'à 2 mégaoctets selon Tomcat.
La taille maximale en octets de POST qui sera gérée par l'analyse des paramètres d'URL du conteneur FORM. La limite peut être désactivée en définissant cet attribut sur une valeur inférieure ou égale à 0. Sinon spécifié, cet attribut est défini sur 2097152 (2 mégaoctets).
J'espère que ces informations vous aideront ..
Il ne s'agit pas de POST ou GET, mais plutôt de la configuration de la limite de taille d'en-tête pour le Tomcat utilisé par votre application.
Vous pouvez toujours contrôler et configurer cela en utilisant les propriétés de l'application comme ci-dessous: server.Tomcat.max-http-header-size = 1024
Où 1024 est en octets.