標籤:com 問題 串連 enc microsoft 瀏覽器 odi 欄位 strong
1、概念
keep-alive模式(又稱持久串連、串連重用)時,keep-alive功能使用戶端到伺服器端的串連持續有效,當出現對伺服器的後繼請求時,keep-alive功能避免了建立或者重建立立串連。
http 1.0中預設是關閉的,需要在http頭加入"Connection: keep-alive",才能啟用keep-alive;http 1.1中預設啟用keep-alive,如果加入"Connection: close ",才關閉。目前大部分瀏覽器都是用http1.1協議,也就是說預設都會發起keep-alive的串連請求了,所以是否能完成一個完整的keep-alive串連就看伺服器設定情況。
2、如何確定串連中斷
說明:
在Http 1.0及之前版本中,content-length欄位可有可無。
在http1.1及之後版本。如果是keep alive,則content-length和chunk必然是二選一。若是非keep alive,則和http1.0一樣。content-length可有可無。有了Transfer-Encoding,則不能有Content-Length。
(1)Content-Length
Content-Length
表示實體內容的長度。瀏覽器通過這個欄位來判斷當前請求的資料是否已經全部接收。
所以,當瀏覽器請求的是一個靜態資源時,即伺服器能明確知道返回內容的長度時,可以設定Content-Length
來控制請求的結束。但當伺服器並不知道請求結果的長度時,如一個動態頁面或者資料,Content-Length
就無法解決上面的問題,這個時候就需要用到Transfer-Encoding
欄位。
(2)Transfer-Encoding
chunk編碼將資料分成一塊一塊的發生。Chunked編碼將使用若干個Chunk串聯而成,由一個標明長度為0的chunk標示結束。
http keep-alive 解釋