今天檢視伺服器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.
如圖:
網上查找了一下原因,很多人是說把https改為http請求就可以了,不過我本來就是http請求的,是以這個方法對我應該沒有用。
繼續查找發現一篇文章說是http請求方法有特殊字元導緻的,想嘗試一下能不能複現。
首先想到postman,但是postman已經封裝好方法了不能用,放棄。
然後改為js ajax送出,結果發現居然直接可以通路,應該是ajax做了其他處理了,沒能複現。
最後改用curl 成功将報錯給複現出來,如圖:
請求方法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的大小。我沒有嘗試,先記錄下來,後面如果伺服器還出現過多這樣的異常情況,可以試一下。