Tomcat響應https請求引起的一次Bug

2021-10-02 05:13:33 字數 688 閱讀 7482

問題描述:接到乙個需求,也是很簡單。如果是https請求重定向到乙個位址,是http請求重定向到另乙個位址。**很快寫完了,開始測試。

為了除錯,把請求路徑的日誌列印出來:

string url = request.getrequesturl().tostring();

logger.info("url:"+url);

https的請求的url中對應的埠號沒了,https也看不到了,取而代之的是http請求。

好吧,又開始bug修復了。

問題也比較容易定位,發起的請求到服務端只經過nginx**,路徑傳送變化,應該是nginx**出現了問題。好吧,找運維看nginx的配置。排查後,是這個問題,那就改配置檔案。

問題解決後,想著本地測試一下,於是本地啟動tomcat,發起https請求,完全沒任何反應  ???,反之http請求則正常響應。

這是什麼情況?上網搜了一下,明白了,tomcat響應https請求得加證書。再一想上面的問題,豁然開朗了。

公司的運維正常不會在伺服器tomcat加證書,因為有時候需要擴容,萬一忘了咋整。趕緊問問運維,確認了猜想。

同時,能夠證明這個猜想的是,我發起的https請求,從來沒在客戶端加過證書,而且也沒出現過任何提示。這樣能從側面驗證猜想是正確的。

http與https的區別

tomcat無法響應請求,假死

線上的tomcat執行一段時間就會假死,通過netstat檢視埠情況會發現tomcat的埠出現大量的close wait,此時tomcat會停止響應前端請求,同時服務端的日誌,操作等將全部停止,而且沒有出現任何異常。肯定是 問題,於是將伺服器執行緒堆疊dump下來分析具體的問題,好在jdk下面提供了...

HTTP和HTTPS請求的響應流程

http的中文意思超文字傳輸協議 http,hypertext transfer protocol 是網際網路上應用最為廣泛的一種網路協議。所有的www檔案都必須遵守這個標準。而https是http基於ssl加密後的傳輸協議。訪問的流程如下圖。客戶端傳送請求。請求首先會經過路由器 交換機 電信運營商...

HTTP請求響應過程 與HTTPS區別

原文 http請求響應過程 與https區別 http協議主要應用是在伺服器和客戶端之間,客戶端接受超文字。伺服器按照一定規則,傳送到客戶端 一般是瀏覽器 的傳送通訊協議。與之類似的還有檔案傳送協議 file transfer protocol,ftp 簡單郵件傳送協議 mail ttransfer...