免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Tomcat竟然有bug,這我能信?

2021-02-09    分類: 網站建設

背景介紹

為了解決分布式鏈路追蹤的問題,我們引入了實現OpenTracing的Jaeger來實現。然后我們為SpringBoot框架寫了一個starter以讓用戶實現近零改造接入全鏈路。

由于公司有一個封裝了SpringBoot的內部框架,然后我們的starter就以最新框架所使用的SpringBoot版本為基礎進行開發。所以業務系統在接入的時候需要先升級框架,然后再引入我們的starter才行無縫接入全鏈路。

到這里我們也就知道了處理Host頭部的類就是這個HttpParser類。

然后我在本次check了下tomcat8.5.31 和8.5.11的代碼,比對了一下HttpParser以及AbstractProcessor類。

對比結果如下:

到這里我們就已經知道了為什么8.5.11版本的tomcat是正常的,主要是因為8.5.11版本的tomcat沒有對Host頭部進行校驗,而在8.5.31版本的tomcat增加了該校驗。

我們來看一下tomcat源代碼的提交記錄:

我們發現在 2018/4/6增加了對host/port的校驗。

根因之根因

那為什么tomcat增加了這個Host的校驗呢,而且不允許使用帶有下劃線的Host呢?實際上這個是有規范的。具體點擊這個鏈接

https://www.ietf.org/rfc/rfc1034.txt

經驗教訓

好了,到這里我們就知道了,其實對于帶有下劃線的Host,tomcat是遵循的RFC1-1034的規范的,所以tomcat的處理是正確的。但是tomcat在處理某些其他合法的Host的時候歷史上出現過bug,但是對于下劃線的處理一直是正確的。

所以,以后nginx在配置upstream的時候不能使用帶有下劃線的名稱,還有最好在location位置上加上proxy_set_header HOST $host

網站名稱:Tomcat竟然有bug,這我能信?
文章URL:http://m.newbst.com/news1/100001.html

成都網站建設公司_創新互聯,為您提供網站改版建站公司網站收錄做網站域名注冊網站設計公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

微信小程序開發