Error parsing HTTP request header 请求头报错问题,服务器Tomcat运行半天左右时间,就会报这个错。再次请求服务器,Tomcat无响应

六月 18, 2019 11:37:19 下午 org.apache.coyote.http11.AbstractHttp11Processor process
信息: Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
at org.apache.coyote.http11.InternalAprInputBuffer.parseRequestLine(InternalAprInputBuffer.java:186)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1050)
at org.apache.coyote.AbstractProtocol A b s t r a c t C o n n e c t i o n H a n d l e r . p r o c e s s ( A b s t r a c t P r o t o c o l . j a v a : 637 ) a t o r g . a p a c h e . t o m c a t . u t i l . n e t . A p r E n d p o i n t AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.AprEndpoint AbstractConnectionHandler.process(AbstractProtocol.java:637)atorg.apache.tomcat.util.net.AprEndpointSocketProcessor.doRun(AprEndpoint.java:2575)
at org.apache.tomcat.util.net.AprEndpoint S o c k e t P r o c e s s o r . r u n ( A p r E n d p o i n t . j a v a : 2564 ) a t j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r . r u n W o r k e r ( T h r e a d P o o l E x e c u t o r . j a v a : 1149 ) a t j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r SocketProcessor.run(AprEndpoint.java:2564) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor SocketProcessor.run(AprEndpoint.java:2564)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)atjava.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
*

背景(jdk1.8/Tomcat7.0),服务器Tomcat运行半天左右时间,就会报这个错。再次请求服务器,Tomcat无响应*

解决办法:

怀疑提交数据超过了定义的header头内容,在tomcat中server.xml的maxHttpHeaderSize设置,maxHttpHeaderSize=“8192”,问题还是没有被解决。

解决办法:

在网上找到资料:json传输的时候包含了{},这就是原因所在。因为tomcat7某个版本之后, 增加了一个新特性,就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。解决方法其实很简单,可以通过修改tomcat的catalina.properties的最后一行改为(这行我的Tomcat7.0.94是#注释的,取消注释添加{})
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}

还有常见的三个原因:SSL配置、缓冲区大小(在server.xml中添加maxHttpHeaderSize设置)、Get请求方式改POST,供参考。

尝试以上搜集办法都没有解决问题,最后查看Tomcat的启动内存只有,128/256MB
我使用是是解压版,在Tomcat的bin目录下,catalina.bat,第一行加入set JAVA_OPTS= -Xms4096M -Xmx5129M,(服务器是32G内存),不是解压版的,可能没有catalina.bat,可以再,左边第一张图片添加内存设定(点击Tomcat7w.exe。
在这里插入图片描述
已经过去半天时间 ,tomcat还是会报Error parsing HTTP request header 请求头报错问题,但是Tomcat不会未响应挂起。
更新:过去一个星期了,Tomcat正常运行,不会未响应挂起。 请求头报错信息,还没有来得及解决。不影响正常运行。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:这个问题通常是由于HTTP请求头部过长导致的。可以通过在Tomcat的server.xml文件中添加maxHttpHeaderSize属性来解决这个问题。例如,在Connector元素中添加maxHttpHeaderSize="8192"。这样可以增加HTTP请求头部的大小限制。\[1\] 引用\[2\]:另外,报错信息中还提到了"Invalid character found in the request target"。这意味着请求目标中存在无效字符。根据RFC 7230和RFC 3986的定义,请求目标中只能包含特定的有效字符。如果请求目标中包含了无效字符,就会导致解析误。\[2\] 引用\[3\]:还有一种可能的误是"Invalid character found in method name"。这意味着HTTP方法名中存在无效字符。根据HTTP协议的规定,HTTP方法名必须是有效的标记。如果方法名中包含了无效字符,就会导致解析误。\[3\] 综上所述,"error parsing http request header"的问题通常是由于HTTP请求头部过长或包含无效字符导致的。可以通过增加maxHttpHeaderSize属性来解决头部过长的问题,并确保请求目标和方法名中只包含有效字符。 #### 引用[.reference_title] - *1* [Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors报错,已...](https://blog.csdn.net/qq_44893880/article/details/105755299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【TomcatError parsing HTTP request header的解决方案](https://blog.csdn.net/qq_33591903/article/details/104915079)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值