http通訊過程

當咱們在瀏覽器的地址欄輸入www.baidu.com而後按回車,這以後發生了什麼事,咱們直接看到的是打開了對應的網頁,那麼內部客戶端和服務端是如何通訊的呢?瀏覽器

一、     一、URL自動解析緩存

      HTTP URL包含了用於查找某個資源的足夠信息,基本格式以下:HTTP://host[:port][abs_path],其中HTTP表示桶蓋HTTP協議來定位網絡資源;host表示合法的主機域名或IP地址,port指定一個端口號,缺省80;abs_path指定請求資源的URI;若是URL中沒有給出abs_path,那麼當它做爲請求URI時,必須以/的形式給出,一般這個工做瀏覽器自動幫咱們完成。服務器

例如:輸入www.163.com;瀏覽器會自動轉換成:HTTP://www.163.com/網絡

2、獲取IP,創建TCP鏈接jsp

瀏覽器地址欄中輸入"HTTP://www.xxx.com/"並提交以後,首先它會在DNS本地緩存表中查找,若是有則直接告訴IP地址。若是沒有則要求網關DNS進行查找,如此下去,找到對應的IP後,則返回會給瀏覽器。spa

當獲取IP以後,就開始與所請求的Tcp創建三次握手鍊接,鏈接創建後,就向服務器發出HTTP請求。orm

3、客戶端瀏覽器向服務器發出HTTP請求資源

一旦創建了TCP鏈接,Web瀏覽器就會向Web服務器發送請求命令,接着以頭信息的形式向Web服務器發送一些別的信息,以後瀏覽器發送了一空白行來通知服務器,它已經結束了該頭信息的發送。文檔

例如:GET/sample/hello.jsp HTTP/1.1域名

4Web服務器應答,向瀏覽器發送數據

客戶機向服務器發出請求後,服務器會客戶機回送應答,

HTTP/1.1 200 OK

應答的第一部分是協議的版本號和應答狀態碼,正如客戶端會隨同請求發送關於自身的信息同樣,服務器也會隨同應答向用戶發送關於它本身的數據及被請求的文檔。

Web服務器向瀏覽器發送頭信息後,它會發送一個空白行來表示頭信息的發送到此爲結束,接着,它就以Content-Type應答頭信息所描述的格式發送用戶所請求的實際數據

5Web服務器關閉TCP鏈接

通常狀況下,一旦Web服務器向瀏覽器發送了請求數據,它就要關閉TCP鏈接,而後若是瀏覽器或者服務器在其頭信息加入了這行代碼

Connection:keep-alive

TCP鏈接在發送後將仍然保持打開狀態,因而,瀏覽器能夠繼續經過相同的鏈接發送請求。保持鏈接節省了爲每一個請求創建新鏈接所需的時間,還節約了網絡帶寬。

 

網上對HTTP通訊的另外一種說法

(1)創建TCP鏈接 

          在HTTP工做開始以前,Web瀏覽器首先要經過網絡與Web服務器創建鏈接,該鏈接是經過TCP來完成的,該協議與IP協議共同構建Internet,即著名的TCP/IP協議族,所以Internet又被稱做是TCP/IP網絡。HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議創建以後才能,才能進行更層協議的鏈接,所以,首先要創建TCP鏈接,通常TCP鏈接的端口號是80

 

(2)    Web瀏覽器向Web服務器發送請求命令 

一旦創建了TCP鏈接,Web瀏覽器就會向Web服務器發送請求命令

例如:GET/sample/hello.jsp HTTP/1.1

 

(3)   Web瀏覽器發送請求頭信息 

瀏覽器發送其請求命令以後,還要以頭信息的形式向Web服務器發送一些別的信息,以後瀏覽器發送了一空白行來通知服務器,它已經結束了該頭信息的發送。

 

(4)    Web服務器應答 

客戶機向服務器發出請求後,服務器會客戶機回送應答,

HTTP/1.1 200 OK

應答的第一部分是協議的版本號和應答狀態碼

 

(5)    Web服務器發送應答頭信息 

正如客戶端會隨同請求發送關於自身的信息同樣,服務器也會隨同應答向用戶發送關於它本身的數據及被請求的文檔。

 

(6)    Web服務器向瀏覽器發送數據 

Web服務器向瀏覽器發送頭信息後,它會發送一個空白行來表示頭信息的發送到此爲結束,接着,它就以Content-Type應答頭信息所描述的格式發送用戶所請求的實際數據

(7)    Web服務器關閉TCP鏈接 

通常狀況下,一旦Web服務器向瀏覽器發送了請求數據,它就要關閉TCP鏈接,而後若是瀏覽器或者服務器在其頭信息加入了這行代碼

Connection:keep-alive

TCP鏈接在發送後將仍然保持打開狀態,因而,瀏覽器能夠繼續經過相同的鏈接發送請求。保持鏈接節省了爲每一個請求創建新鏈接所需的時間,還節約了網絡帶寬。

相關文章
相關標籤/搜索