一、經過DNS解析返回IP地址
- 在瀏覽器DNS緩存中搜索
- 在操做系統DNS緩存中搜索
- 讀取系統hosts文件,查找其中是否有對應的ip
- 向本地配置的首選DNS服務器發起域名解析請求
二、發起TCP三次握手創建鏈接
爲了準確地傳輸數據,TCP協議採用了三次握手策略。發送端首先發送一個帶SYN(synchronize)標誌的數據包給接收方,接收方收到後,回傳一個帶有SYN/ACK(acknowledegment)標誌的數據包以示傳達確認信息。最後發送方再回傳一個帶ACK標誌的數據包,表明握手結束。在這過程當中若出現問題中斷,TCP會再次發送相同的數據包。
TCP是一個端到端的可靠的面向鏈接的協議,因此HTTP基於傳輸層TCP協議不用擔憂數據的傳輸的各類問題。
三、客戶端發送http請求
HTTP請求包括請求報頭和請求主體兩個部分,其中請求報頭包含了相當重要的信息,包括請求的方法(GET / POST)、目標url、遵循的協議(http / https / ftp…),返回的信息是否須要緩存,以及客戶端是否發送cookie等。html
四、網絡層IP協議查詢MAC地址
IP協議的做用是把TCP分割好的各類數據包傳送給接收方。而要保證確實能傳到接收方還須要接收方的MAC地址,也就是物理地址。IP地址和MAC地址是一一對應的關係,一個網絡設備的IP地址能夠更換,可是MAC地址通常是固定不變的。ARP協議能夠將IP地址解析成對應的MAC地址。當通訊的雙方不在同一個局域網時,須要屢次中轉才能到達最終的目標,在中轉的過程當中須要經過下一個中轉站的MAC地址來搜索下一個中轉目標。
五、服務端把傳過來的數據進行排序(保證順序)
tcp將接收到的報文段進行排序,按序號以原來的順序進行重組請求報文瀏覽器
六、服務器發送響應,請求處理的結果也利用TCP向客戶端進行回傳
服務接收到客戶端發送的HTTP請求後,查找客戶端請求的資源,並返回響應報文,響應報文中包括一個重要的信息——狀態碼。狀態碼由三位數字組成,其中比較常見的是200 OK表示請求成功。301表示永久重定向,即請求的資源已經永久轉移到新的位置。在返回301狀態碼的同時,響應報文也會附帶重定向的url,客戶端接收到後將http請求的url作相應的改變再從新發送。404 not found 表示客戶端請求的資源找不到。
緩存
7. 瀏覽器解析html
- 構建DOM樹
- 下載資源
- CSS - 構建CSSOM樹
- js - 等下下載並執行後解析
8. 瀏覽器佈局渲染
- 佈局:經過計算獲得每一個渲染對象在可視區域中的具體位置信息(大小和位置),這是一個遞歸的過程。
- 繪製:將計算好的每一個像素點信息繪製在屏幕上