1. 程式人生 > >長連線的定義及其優缺點

長連線的定義及其優缺點

         
在HTTP 1.1標準中,所有的請求都認為是長連線,這個時候HTTP長連線的建立不再需要標識單獨的長連線資訊。然而,在apache2.0中預設的連線超時時間是15秒,而2.2中預設是5秒,減少超時時間是為了伺服器能夠響更多的請求。
長連線的優點
1、減少CPU及記憶體的使用,因為不需要經常的建立及關閉連線,當然高峰併發時CPU及記憶體也是比較多的;
2、允許HTTP pipelining(HTTP 1.1中支援)的請求及響應模式:
為了便於理解HTTP pipelining,參見下圖:


3、減少網路的堵塞,因為減少了TCP請求; 根據RFC 2616 (page 46)的標準定義,單個客戶端不允許開啟2個以上的長連線,這個標準的目的是減少HTTP響應的時候,減少網路堵塞
4、減少後續請求的響應時間,因為此時不需要建立TCP,也不需要TCP握手等過程;
5、當發生錯誤時,可以在不關閉連線的情況下進行提示;
長連線的缺點
:可能會損害伺服器的整體效能,如apache的長連線時間的長短,直接影響到伺服器的併發數。
長連線在瀏覽器中的使用情況
Netscape從4.05開始支援,Netscape不是通過timeout來關閉長連線,它是將空閒連線放置到一個佇列中,當有需要向其它服務端建立長連線時,這個時候,它根據LRU(Least Recently Used)演算法進行處理,即將最使少使用的空閒連線KILL掉;
IE從4.0.1開始支援,IE6、7只支援兩個長連線,IE8支援6個,IE 60秒為預設的超時時間,這個值可以在登錄檔中修改;
FF類似IE通過timeout管理長連線,不過,默的是115秒,這個是可能通過配置進行更改的;
Opera從4.0開始支援長連線,長連線數可以自定義;