为了解决Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.这个问题,
网上查了查需要修改一下tomcat中的配置,因为我用的是Spring boot 集成的tomcat所以只在配置中修改一下就行了
我的项目环境是liunx+Springboot集成tomcat+https认证
发现maxHttpHeaderSize这个属性使用
server.tomcat.max-http-header-size显示为失效
后来查了一下去掉tomcat就好了,记录一下
server.max-http-header-size=10240
细心的同学通过这个点进去就会发现默认值是8*1024.这里我改成了10240(10*1024)
目前来看经过一步步修改这个数值,这类错误日志是明显减少了,但是还是有.
4.15更新:server.max-http-header-size=15360 现在没有了
5.21更新:这段时间在忙,一直没有关注,查看日志现在差不多每天一次报这个错误
8.3更新:在一个帖子说可能请求参数总包含啦 | 特殊字符,考虑线上有爬虫等等,我先把url请求日志打出来,过段时间更新,给大家提供一个思路试试
完整错误代码
2019-01-29 12:10:23.538 INFO 11781 --- [p-nio-80-exec-3] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in the HTTP protocol
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:531) ~[tomcat-embed-core-9.0.13.jar!/:9.0.13]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:294) ~[tomcat-embed-core-9.0.13.jar!/:9.0.13]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-9.0.13.jar!/:9.0.13]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:791) [tomcat-embed-core-9.0.13.jar!/:9.0.13]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417) [tomcat-embed-core-9.0.13.jar!/:9.0.13]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.13.jar!/:9.0.13]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_191]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.13.jar!/:9.0.13]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_191]