1. 程式人生 > 其它 >HTTP建立連線的過程

HTTP建立連線的過程

1、獲取IP。瀏覽器位址列中輸入"http://www.xxx.edu.cn/"並提交之後,首先它會在DNS本地快取表中查詢,如果有則直接告訴IP地址。如果沒有則要求閘道器DNS進行查詢,如此下去,當找到對應的ip後,則返回給瀏覽器。

2、建立TCP連線。當獲取到IP之後,就開始與所請求的伺服器建立TCP連線,你可以在下圖中發現syn,ack,這些識別符號就是用來同步用的。

3、連線建立後,就向伺服器發出http請求(大家可以從圖中看出來)。如果是HTTP1.0的版本則,每一次請求結束後,就釋放TCP連線。

HTTP 的連線方式

HTTP 的連線方式是指 連線的持續性,它分為:短連線和長連線。

短連線

顧名思義,瀏覽器和伺服器沒進行一次HTTP操作,就建立一次連線,但是任務結束就中斷連線。在HTTP/1.0中,預設使用的是短連線。如:瀏覽器訪問某個HTML或者其他型別的Web頁中包含有其他的web資源,如JavaScript,影象檔案,CSS檔案等;當瀏覽器遇到這樣的web資源,就會建立一個HTTP會話。

長連線

同樣的意思,在客戶端與瀏覽器建立了連線後,會保持這個連線的狀態。在HTTP/1.1中,預設的是長連線。使用長連線的HTTP協議,會在響應頭有如下的程式碼:

Connection:keep-alive

當使用了長連線的時候,客戶端一旦建立了連線,第二次建立連線的時候就直接使用已經建立的通道。但是keep-alive並不是永久的保持,可以在不同的伺服器軟體設定這個時間。

HTTP 的長連線短連線,其實是TCP的長連線和短連線。

TCP 長連線短連線的過程

長連線:

建立連線----傳輸資料---(保持連線)--傳輸資料-- 關閉連線

短連線

建立連線--- 傳輸資料----關閉連線........建立連線---傳輸資料----關閉連線

資料庫的連線用長連線, 如果用短連線頻繁的通訊會造成socket錯誤,而且頻繁的socket 建立也是對資源的浪費

WEB網站的http服務一般都用短連結,因為長連線對於服務端來說會耗費一定的資源,而像WEB網站這麼頻繁的成千上萬甚至上億客戶端的連線用短連線會更省一些資源,如果用長連線,而且同時有成千上萬的使用者,如果每個使用者都佔用一個連線的話,那可想而知吧。所以併發量大,但每個使用者無需頻繁操作情況下需用短連好。