在瀏覽器中輸入網站域名並按下回車的詳細過程

 

主要有如下幾個部分:

 

1 DNS解析,獲取Web服務器IP

2 創建TCP鏈接

3 向Web服務器發送HTTP請求

4 Web服務器收到請求並處理

5 Web服務器返回響應

6 瀏覽器對響應解碼,並顯示數據

7 頁面顯示完成後,瀏覽器發送異步請求

8 關閉TCP鏈接

下面詳細過程:html

1 DNS解析,獲取Web服務器IP

  請求方按照如下順序進行DNS解析:瀏覽器

  (1)瀏覽器緩存緩存

  (2)系統緩存服務器

  (3)路由器緩存異步

  (4)ISP DNS服務器緩存spa

  (5)根域名服務器.net

  若是第(5)步也找不到域名,則該域名不存在。code

2 創建TCP鏈接

  創建TCP鏈接首先要找到目標服務器(獲取物理地址):(1)若是目標IP與本機IP處於同一個子網,請求方發送ARP獲取目標IP的MAC地址,不然將網關的MAC地址做爲目標MAC地址,利用路由器進行轉發。htm

  請求方(客戶端)向Web服務器(服務器端)發出請求創建TCP鏈接。鏈接的過程是三次握手:對象

  

3 向Web服務器發送HTTP請求

  (1)生成HTTP數據包,依次打上TCP、IP、以太網協議頭部。其中TCP頭部主要包含本機端口與目標端口等信息,用於標識同一主機的不一樣進程,HTTP的默認端口是80,本機瀏覽器則是一個1024到65535之間的端口號。IP頭部主要包含本地IP和目標IP等信息。以太網協議頭部主要是雙方的MAC地址。若是包太大,還要進行拆包,分別發送。

  (2)發送HTTP請求。

4 Web服務器收到請求並處理

5 Web服務器返回響應

  返回響應碼可能爲2xx:成功,3xx:重定向,4xx:客戶端錯誤。

6 瀏覽器對響應解碼,並顯示數據

  在瀏覽器沒有完整接受所有HTML文檔時,它就已經開始顯示這個頁面了,若是是個靜態的頁面,拿到此就基本結束了。若是是是動態的,那麼在瀏覽器顯示HTML時,會獲取嵌入在HTML中的對象,瀏覽器會發送獲取請求來從新得到這些文件。這些請求都要經歷一個和HTML讀取相似的過程。

  對於靜態的頁面內容,瀏覽器一般會進行緩存,而對於動態的內容,瀏覽器一般不會進行緩存。

7 頁面顯示完成後,瀏覽器發送異步請求

  客戶端持續與服務器保持聯繫來及時更新一些頁面信息。

8 關閉TCP鏈接

  Web服務器發起關閉TCP鏈接,方式是四次斷開:

  

 

 原文傳送門:請點擊

相關文章
相關標籤/搜索