Tomcat伺服器response header 200 OK問題
阿新 • • 發佈:2018-12-09
記錄一個剛踩的坑,因為公司用某的某廠商的裝置,該裝置傳送http請求之後要求response header中 返回 HTTP/1.1 200 OK ,眾所周知,status code 200表示連線成功 ,而OK 是reasonPhrase。 而我用的是tomcat 8.5/9.0版本,只有個HTTP/1.1 200 沒有OK,然後廠商那邊也是坑爹,有個200還不滿足,字串判斷非要有 200 OK ,人家嵌入式的 程式碼又不像咱們這個隨時改,只能我這邊研究研究了。 網上檢視幾個回覆,說用httpResponse.setStatus(200,”OK”)就可以,經實測,方法已經deprecated且不生效, 但是同一個帖子下的回覆有提到修改server.xml,增加 sendreasonPhrase=”true”的,經過測試,tomcat8.0/8.5/9.0都生效,看了下apache官網,截圖如下:
經過本人 親測即便是tomcat 9.0.10修改後也是會發送200 OK的,跟官網介紹相矛盾,特此記錄,如果哪位老兄以後也碰上200還不OK的奇葩要求,可以避免踩坑,之前上stackoverflow看了,一群老外也沒研究出來,只說是apache覺得reasonPhrase沒卵用還浪費byte就在8.5去掉了這個功能。