JAVA -tomcat-请求标头太大

Sar*_*ava 15 java tomcat http tomcat7

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
Run Code Online (Sandbox Code Playgroud)

我怎么能在我的春季Web应用程序中解决这个问题?

我经历过这个帖子请求标题太大了

Jay*_*Jay 14

这是问题,HTTP标头中是否有任何限制?答案是否定的.有没有限制,但网络服务器,甚至限制其进入的请求头大小的POST请求,因此我们得到413(请求头太大).此限制包括请求行和标题字段.

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

http标头值的最大值?


在我的情况下,我有SpringBoot 1.5.8并使用HTTP POST,但我必须添加:

server.max-http-header-size=10000000 
Run Code Online (Sandbox Code Playgroud)

在application.properties中.

  • 10000000MB 差不多是 10TB,您打算在标头中发送 10TB 吗? (4认同)

Sar*_*ava 13

解决了!我使用HTTP GET而不是HTTP POST.从技术上讲,如果URL长度超过2000个字符,我发现HttpGet会有问题.在这种情况下,最好使用HttpPost或拆分URL.浏览器的限制范围为2kb - 8kb

Tomcat:请求标头太大


kim*_*y82 6

我知道这是一个老帖子.不过我认为澄清一些内容是件好事.

  • 使用_server.tomcat.max-http-header-size = max_wanted_size_参数,您将更改服务器以接受最多max_wanted_size,但即使您将其设置为10Mb,浏览器也会将您的请求参数剪切为浏览器限制大小.我试过镀铬,它似乎在150-200kb左右.
  • java.lang.IllegalArgumentException异常是在服务器发生的事情,现在也没有任何做与浏览器.因此,更改server.tomcat.max-http-header-size应该足够好并且在使用GET方法时会发生这种情况,但是在使用POST方法时也会发生(在POST情况下应该更改maxPostSize参数).


Ash*_*pta 5

这与 POST 或 GET 无关,而是与应用程序使用的 Tomcat 的标头大小限制设置有关。

您始终可以使用应用程序属性来控制和配置它,如下所示:server.tomcat.max-http-header-size=1024

其中 1024 以字节为单位。

  • 对于 Springboot 2.x `server.max-http-header-size=1KB` (2认同)

Dul*_*sta 5

请求和响应HTTP标头的最大大小,以字节为单位指定。如果未指定,则此属性设置为4096(4 KB)。

为避免Error parsing HTTP request header出错,您可以通过执行以下操作增加以下值。

转到以下位置: $TOMCAT_HOME/conf/server.xml

server.xml更改HTTP/1.1 Connector条目中,将其设置maxHttpHeaderSize为“ 65536 ”(64Kb以字节为单位),如下所示:

<Connector port="8080" maxHttpHeaderSize="65536" protocol="HTTP/1.1" ... />
Run Code Online (Sandbox Code Playgroud)

要么

您可以使用POST方法,根据Tomcat的规定,该方法最多可以承载2 MB。

容器FORM URL参数解析将处理的POST的最大大小(以字节为单位)。可以通过将此属性设置为小于或等于0的值来禁用该限制。如果未指定,则将该属性设置为2097152(2兆字节)。

希望这些信息对您有所帮助。


Mar*_*idt 5

在 Spring Boot 2.4 中application.properties

server.max-http-header-size=10MB
Run Code Online (Sandbox Code Playgroud)