java - 如何增加标头大小限制Tomcat Java
问题描述
查看https://tomcat.apache.org/tomcat-9.0-doc/config/http.html我看到 8KB 是 Tomcat Apache 中 Header Size 的默认限制。
当我发出请求的标头超过默认 8KB 时,日志显示以下内容:
Dec 30, 2019 1:59:26 PM org.apache.coyote.http11.Http11Processor service
INFO: Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Request header is too large
at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:720)
at org.apache.coyote.http11.Http11InputBuffer.parseHeader(Http11InputBuffer.java:867)
at org.apache.coyote.http11.Http11InputBuffer.parseHeaders(Http11InputBuffer.java:563)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:311)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1839)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
我的 Java 项目没有server.xml
内部/webapp/WEB-INF
,只有web.xml
. 我尝试创建一个server.xml
并添加以下内容,如该线程中所述:
<?xml version='1.0' encoding='utf-8'?>
<Connector port="8080" protocol="HTTP/1.1" maxHttpHeaderSize="65536" maxPostSize="4194304"
URIEncoding="UTF-8"/>//webapp/WEB-INF
如何增加默认大小限制?我想设置16KB。
提前感谢=)
PS:我是Tomcat/Java World的新手,如果我犯了一个可怕的错误,我很抱歉=p
解决方案
查看API doc似乎是这个
Tomcat t = new Tomcat();
t.getConnector().setAttribute("maxHttpHeaderSize",65536);
可能是一个有效的解决方案。
推荐阅读
- javascript - TS:基于链式方法推断文字类型
- .net - 如何将 Cloudfront 应用到具有签名 URL 的 S3 现有存储桶
- python - 响应按键
- flutter - 如何维护输入焦点的文本字段状态?
- c - 如何构建接受多维数组作为参数的函数,接收不兼容的指针类型
- flutter - 如何将 ReorderableListView 与 flutter_bloc 一起使用?
- java - 当我尝试捕获时说永远不会抛出的 IOException?
- python - 计算具有两个条件的数据框列的所有组合的乘积
- python - 烧瓶如何在html模板中使用python内置函数(Jinja 2)
- javascript - 为相关下拉选择设置默认值