在瀏覽器輸入一個網址回車後,發生了什麼?

晴天~ ☀發表於2018-12-21

1、通過DNS解析返回IP地址

  • 在瀏覽器DNS快取中搜尋
  • 在作業系統DNS快取中搜尋
  • 讀取系統hosts檔案,查詢其中是否有對應的ip
  • 向本地配置的首選DNS伺服器發起域名解析請求

2、發起TCP三次握手建立連線

為了準確地傳輸資料,TCP協議採用了三次握手策略。傳送端首先傳送一個帶SYN(synchronize)標誌的資料包給接收方,接收方收到後,回傳一個帶有SYN/ACK(acknowledegment)標誌的資料包以示傳達確認資訊。最後傳送方再回傳一個帶ACK標誌的資料包,代表握手結束。在這過程中若出現問題中斷,TCP會再次傳送相同的資料包。
TCP是一個端到端的可靠的面向連線的協議,所以HTTP基於傳輸層TCP協議不用擔心資料的傳輸的各種問題。

3、客戶端傳送http請求

HTTP請求包括請求報頭和請求主體兩個部分,其中請求報頭包含了至關重要的資訊,包括請求的方法(GET / POST)、目標url、遵循的協議(http / https / ftp…),返回的資訊是否需要快取,以及客戶端是否傳送cookie等。

4、網路層IP協議查詢MAC地址

  IP協議的作用是把TCP分割好的各種資料包傳送給接收方。而要保證確實能傳到接收方還需要接收方的MAC地址,也就是實體地址。IP地址和MAC地址是一一對應的關係,一個網路裝置的IP地址可以更換,但是MAC地址一般是固定不變的。ARP協議可以將IP地址解析成對應的MAC地址。當通訊的雙方不在同一個區域網時,需要多次中轉才能到達最終的目標,在中轉的過程中需要通過下一個中轉站的MAC地址來搜尋下一個中轉目標。

5、服務端把傳過來的資料進行排序(保證順序)

tcp將接收到的報文段進行排序,按序號以原來的順序進行重組請求報文

6、伺服器傳送響應,請求處理的結果也利用TCP向客戶端進行回傳

服務接收到客戶端傳送的HTTP請求後,查詢客戶端請求的資源,並返回響應報文,響應報文中包括一個重要的資訊——狀態碼。狀態碼由三位數字組成,其中比較常見的是200 OK表示請求成功。301表示永久重定向,即請求的資源已經永久轉移到新的位置。在返回301狀態碼的同時,響應報文也會附帶重定向的url,客戶端接收到後將http請求的url做相應的改變再重新傳送。404 not found 表示客戶端請求的資源找不到。

7. 瀏覽器解析html

  • 構建DOM樹 
  • 下載資源 
  • CSS - 構建CSSOM樹 
  • js - 等下下載並執行後解析

8. 瀏覽器佈局渲染

  • 佈局:通過計算得到每個渲染物件在可視區域中的具體位置資訊(大小和位置),這是一個遞迴的過程。
  • 繪製:將計算好的每個畫素點資訊繪製在螢幕上


相關文章