HTTP長連接和短連接

1、短連接
這裏寫圖片描述

在HTTP/1.0版本中,默認使用的是短連接,也就是說瀏覽器和服務器每進行一次HTTP操作,就建立一次連接,任務結束就中斷連接。如果客戶端瀏覽器訪問某個HTML或其他類型的Web頁中包含其他的web資源,則瀏覽器每遇到這樣一個web資源,就會建立一個HTTP會話。

2、長連接
這裏寫圖片描述

從HTTP/1.1版本起,默認使用長連接用以保持連接特性。使用長連接的HTTP協議,會在響應消息報文段加入: Connection: keep-alive。注意:TCP中也有keep alive,但是TCP中的keep alive只是探測TCP連接是否活着,而HTTP中的keep-alive是讓一個TCP連接獲得更久一點。
在使用長連接的情況下,當一個網頁打開之後,客戶端和服務器之間用於傳輸HTTP數據的TCP連接不會關閉,如果客戶端再次訪問呢這個服務器上的網頁的時候,會繼續使用這一條已經建立的連接。當然這個連接不會永久的保持下去,他有一個keep-alive(保活時間)。實現長連接要求客戶端和服務器都要支持長連接。

3、HTTP協議的長連接與短連接
HTTP協議的底層使用TCP協議,所以HTTP協議的長連接和短連接在本質上是TCP層的長連接和短連接。由於TCP建立連接、維護連接、釋放連接都是要消耗一定的資源,浪費一定的時間。所對於服務器來說,頻繁的請求釋放連接會浪費大量的時間,長時間維護太多的連接的話又需要消耗資源。所以長連接和短連接並不存在優劣之分,只是適用的場合不同而已。

4、長連接和短連接的優點和缺點。
長連接可以節省較多的TCP連接和釋放的操作,節約時間,對於頻繁請求資源的用戶來說,適合長連接。由於有保活功能,當遇到大量的惡意連接時,服務器的壓力會越來越大。這時服務器需要採取一些策略,關閉一些長時間沒有進行讀寫事件的的連接。
短連接對服務器來說管理比較簡單,只要存在的連接都是有效連接,不需要額外的控制手段,而且不會長時間的佔用資源 。但如果客戶端請求頻繁的話,會在TCP的建立和釋放上浪費大量的時間。

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