信息: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.


1、在查看系統后台日志時,發現異常信息如下:

八月 27, 2018 12:34:52 上午 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:181)
    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.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

 

2、在網上查找資料解決方案

因為httpHeaderSize大小不夠導致的,要修改tomcat的配置,新加一個字段maxHttpHeaderSize,在tomcat的配置文件server.xml里,對<Connector>元素添加屬性 maxHttpHeaderSize="8999",或是需要將method 的屬性設置為POST

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000" maxHttpHeaderSize="8999"
               redirectPort="8443" />

maxHttpHeaderSize:HTTP請求和響應頭的最大量,以字節為單位,默認值為4096字節。

 

3、異常原因分析

經過分析,發現此問題與請求參數有關。當在瀏覽器中訪問時 URL中帶有特殊字符,如花括號冒號時,就會出現這個錯誤。例如:http://localhost:8080/index.do?{id:123},在有些情況下,即使沒有花括號,只要帶有"?+參數"就會報此異常。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM