您好,登錄后才能下訂單哦!
一個 TCP 連接可以對應幾個 HTTP 請求?
在 HTTP/1.0 中,一個服務器在發送完一個 HTTP 響應后,會斷開 TCP 鏈接。但是這樣每次請求都會重新建立和斷開 TCP 連接,代價過大。所以雖然標準中沒有設定,某些服務器對 Connection: keep-alive 的 Header 進行了支持。意思是說,完成這個 HTTP 請求之后,不要斷開 HTTP 請求使用的 TCP 連接。這樣的好處是連接可以被重新使用,之后發送 HTTP 請求的時候不需要重新建立 TCP 連接,以及如果維持連接,那么 SSL 的開銷也可以避免,兩張圖片是我短時間內兩次訪問 https://www.github.com 的時間統計:
頭一次訪問,有初始化連接和 SSL 開銷
初始化連接和 SSL 開銷消失了,說明使用的是同一個 TCP 連接
持久連接:既然維持 TCP 連接好處這么多,HTTP/1.1 就把 Connection 頭寫進標準,并且默認開啟持久連接,除非請求中寫明 Connection: close,那么瀏覽器和服務器之間是會維持一段時間的 TCP 連接,不會一個請求結束就斷掉。
所以第一個問題的答案是:默認情況下建立 TCP 連接不會斷開,只有在請求報頭中聲明 Connection: close 才會在請求完成后關閉連接。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。