JAVA -tomcat- 请求头太大

新手上路,请多包涵
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

我怎么能在我的 spring web 应用程序中解决这个问题?

我已经通过这个线程 Request header is too large

原文由 Sarthak Srivastava 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 729
2 个回答

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

Tomcat:请求标头太大

原文由 Sarthak Srivastava 发布,翻译遵循 CC BY-SA 4.0 许可协议

问题来了,HTTP headers 有没有限制?答案是 否定 的。 没有限制,但是即使在 POST 请求中,Web 服务器也会限制其传入请求标头的大小,因此我们得到 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

在 application.properties 中。

原文由 Jay Ehsaniara 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题