HTTP的長連接和短連接(keep-alive狀態)

HTTP是建立在TCP上的超文本傳輸協議。

HTTP協議中的長連接和短連接(keep-alive狀態)

寫http服務器考慮兩種方式:持久連接和非持久連接;
這兩種連接方式首先取決於http服務器是否支持;
標準HTTP服務器支持這兩種方式,特殊HTTP服務器只支持非持久連接;
持久連接和非持久連接都是服務器端/IE端均可控制的;
控制方式是用Connection : xxxxx字段;
Connection: Close告訴對方這次傳輸結束以後關閉socket;
Connection: Alive告訴對方這次傳輸結束以後可以再次利用這個socket以下模擬持久連接;
IE Request 包含Connection:Alive -> HTTP服務器返回網頁,HTTP頭部包含 Connection: Alive -> IE在HTTP頭部描述的字節數接收完畢以後提交下一個請求,其中繼續包含 Connection: Alive -> HTTP服務器繼續返回網頁以下模擬非持久連接;
IE Request 包含Connection:Alive -> HTTP服務器返回網頁,HTTP頭部包含 Connection: Close,表示自己無視IE的Alive請求 -> IE在HTTP頭部描述的字節數接收完畢以後關閉socket需要說明的是,對於持久連接,Server返回的HTTP頭部必須包含一個內容大小字段用來確定IE需要接收的data字節,否則持久連接就會發生問題,因爲IE無法獲知自己什麼時候應該發送下一個請求.所以無法確定data字段大小的時候,服務器必須在適當的時候(通常是data發送結束)主動關閉socket;

TCP Keep-Alive

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章