1. 程式人生 > >在瀏覽器中輸入網站域名並按下回車的詳細過程

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

部分 路由器 完成 是個 tis cli 圖片 聯系 led

主要有以下幾個部分:

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

2 建立TCP連接

3 向Web服務器發送HTTP請求

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

5 Web服務器返回響應

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

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

8 關閉TCP連接

下面詳細過程:

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

  請求方按照以下順序進行DNS解析:

  (1)瀏覽器緩存

  (2)系統緩存

  (3)路由器緩存

  (4)ISP DNS服務器緩存

  (5)根域名服務器

  如果第(5)步也找不到域名,則該域名不存在。

2 建立TCP連接

  建立TCP連接首先要找到目標服務器(獲取物理地址):(1)如果目標IP與本機IP處於同一個子網,請求方發送ARP獲取目標IP的MAC地址,否則將網關的MAC地址作為目標MAC地址,利用路由器進行轉發。

  請求方(客戶端)向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連接,方式是四次斷開:

  技術分享圖片

原文傳送門:請點擊

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