1. 程式人生 > >HTTP/1.0+ "keep-alive" 連接

HTTP/1.0+ "keep-alive" 連接

通過 保持 就會 無法 首部 報文 response line -a

一、keep-alive 連接

(1) 我們在使用串行連接的時候,比如加載四張圖片,當加載第一張圖片時,會建立連接,加載完後會關閉連接,加載第二張圖片時同樣會先建立連接再關閉連接,以此類推,這樣就會消耗很多時間,HTTP/1.0+ "keep-alive" 連接在加載完第一張圖片的時候會有 keep-alive 檢測機制,使得連接保持在活躍狀態而不會被關閉,這樣就能持續加載了,提高了效率節省了時間。
(2) 實現 HTTP/1.0 keep-alive 連接的客戶端可以通過包含 Connection:Keep-Alive 首部請求將一條連接保持在打開狀態
(3) 客戶端和服務器可以在任意時刻關閉空閑的 keep-alive 連接,並可隨意限制 keep-alive 連接所處理事務的數量


二、keep-alive 連接的限制

(1) 在 HTTP/1.0 中,keep-alive 並不是默認使用的,客戶端必須發送一個 Connection:Keep-Alive 請求首部來激活 keep-alive 連接
(2) Connection:Keep-Alive 首部必須隨所有希望保持持久連接的報文一起發送,否則服務器就會在那條請求之後關閉連接
(3) 不應該與無法確定是否支持 Connection 首部的代理服務器建立 keep-alive 連接

三、啞代理和盲中繼

盲中繼就是不管 HTTP 報文內容是什麽,都進行轉發,但是轉發 Connection 首部時,如果帶有 keep-alive 屬性,那麽代理並不會理解 keep-alive 的意思,在進行完一次事務 (request-response) 後,代理會將連接關閉,而此時,客戶端和服務端都以為持久化連接已經建立了,還在傻傻的等著繼續的發送,這個代理就“啞”了。

HTTP/1.0+ "keep-alive" 連接