天天看點

Tomcat 報錯 HTTP method names must be tokens 的原因

今天檢視伺服器tomcat日志的時候發現報錯: HTTP method names must be tokens,上面的詳細為:

org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
           

如圖:

Tomcat 報錯 HTTP method names must be tokens 的原因

網上查找了一下原因,很多人是說把https改為http請求就可以了,不過我本來就是http請求的,是以這個方法對我應該沒有用。

繼續查找發現一篇文章說是http請求方法有特殊字元導緻的,想嘗試一下能不能複現。

首先想到postman,但是postman已經封裝好方法了不能用,放棄。

然後改為js ajax送出,結果發現居然直接可以通路,應該是ajax做了其他處理了,沒能複現。

最後改用curl 成功将報錯給複現出來,如圖:

Tomcat 報錯 HTTP method names must be tokens 的原因

請求方法GET後面特意加了特殊字元[

附上指令:curl -H “Content-Type:application/json” -XGET[ http://192.168.0.xxx:8080/restful/miniUser

把xxx改為你自己的ip即可。

是以,既然是http請求方法錯誤導緻的,那麼這個異常報錯服務端可以不用理會,用戶端請求的時候注意寫好就行了。(有錯還請指正)

原文章位址:https://blog.csdn.net/jimiao_xxxx/article/details/115299168

原文講述了排查過程,比較詳細,我這裡隻是記錄一下而已。

ps:還有人說,在tomcat的server.xml裡面添加 maxHttpHeaderSize=“8192” ,修改maxHttpHeaderSize的大小。我沒有嘗試,先記錄下來,後面如果伺服器還出現過多這樣的異常情況,可以試一下。

繼續閱讀