大致能分成兩個部分:網路通訊與頁面渲染
一.網路通訊
網際網路各個網路裝置間的通訊均基於tcp/ip協議,此協議將整個過程進行分層,由上至下分別為: 應用層、傳輸層、網路層和資料鏈路層
1.輸入url
2.應用層用dns解析網域名稱(dns協議)
解析url網域名稱,檢查本地是否有對應的ip位址,有則返回,沒有則請求上級dns伺服器
備註:dns domain name system,由解析器和網域名稱伺服器組成,主要用於解析網域名稱為ip位址
3.應用層傳送http請求(http協議)
http請求由請求報頭與請求體組成,請求體為請求的資料,請求頭包含請求方式(get、post。。)協議(http、https。。)是否包含cookie等資訊
4.傳輸層傳輸報文(tcp協議)
為了方便傳輸將ip協議大塊的資料分割為以報文段為單位的小資料報,並為其標號,方便服務端還原。
為了保證傳輸的安全可靠,將經歷tcp三次握手:
傳送端傳送帶有syn標誌的資料報給接收端,在一定的時間內等待回覆;
接受端接收到資料報並確認無誤後傳送帶有syn/ack標誌的資料報給傳送端,代表已接收,確認無誤;
傳送端再傳送帶有ack標誌的資料報給接收端代表握手成功。
syn: synchronize 同步
ack:acknowledgement 確認
5.網路層查詢mac位址(ip協議)
ip協議的作用是把分割好得報文傳送給服務端,但在此之前得先知道對方的mac位址。
ip位址與mac一一對應,ip位址能隨意換,但mac不會變,提供arp協議查詢到mac位址
mac: media access control **訪問控制,可理解為實體地址,硬體位址,每個裝置都有獨一無二的mac位址
6.資料鏈路層傳輸資料
提供資料鏈路層傳輸資料,至此客戶端傳送完畢。
7.服務端接收資料
客戶端在資料鏈路層獲取資料,層層上傳至應用層,在傳遞過程中將資料報還原成完整的http請求
8.服務端響應請求
服務端找到資源並返回響應報文,響應報文中包括乙個重要的資訊——狀態碼。狀態碼由三位數字組成,其中比較常見的是200 ok表示請求成功。301表示永久重定向,即請求的資源已經永久轉移到新的位置。在返回301狀態碼的同時,響應報文也會附帶重定向的url,客戶端接收到後將http請求的url做相應的改變再重新傳送。404 not found 表示客戶端請求的資源找不到。
9.請求成功後返回html檔案,進入頁面渲染階段
二、頁面渲染
1.解析html構建dom樹,即由節點構成的樹
解析和構建同時進行,由上至下地進行解析,這裡注意幾點:
a.外部樣式 載入非同步(多個css檔案非同步載入,且不會阻塞dom樹的構建)但會阻塞頁面渲染,阻塞js執行
b.js檔案 載入同步載入與執行都會阻塞之後的操作
如何使樣式不阻塞js?
w1.如果外部指令碼加上async(ir為defer),設為非同步,則外部樣式不會阻塞其執行
w2.動態載入的外部樣式不影響指令碼的執行
e.script一般放在最後面,因為它的載入和執行會阻塞頁面的渲染,也就是說它的載入執行是同步的
2.(style)構建渲染樹,即將css樣式應用到dom樹上,構建cssom樹
webkit稱之為附著
3.(layout)布局
樹節點的大小、位置資訊等的運算,構建渲染樹
4.(painting)繪製
將樹繪製在螢幕上。
本文總結自:與
從瀏覽器位址列輸入URL到瀏覽器呈現資料全過程解析
一 輸入裝置 或貼上 輸入 url,按下 enter鍵 或其他按鈕開始請求。二 瀏覽器開始解析 url 關於 url 到相關知識點 什麼是uri,url以及urn,你真的理解了嗎。1 url 是否合法 2 url 中的字元轉換 三 檢查本地快取,根據快取情況決定下一步的動作 1 強快取 cache ...
從使用者輸入URL到瀏覽器呈現頁面經過了哪些過程
目錄 tcp連線 udphttp協議 urldns http請求發起和響應 不單單只講這個點,還順帶其他知識點,自己要多學多接觸,自己要努力。tcp transmission control protocol,傳輸控制協議 他有三個行為 1 客戶端傳送請求給服務端 2 服務端收到請求,確認請求,返回...
從瀏覽器位址列輸入url到頁面呈現
從瀏覽器dns快取 從系統dns快取中去,本機系統hosts檔案中如果有對映,就返回對映的ip位址 從區域網路由器中dns快取獲取對映位址 從dns伺服器快取獲取對映位址 伺服器中查詢,com baidu www 2.tcp連線,三次握手 瀏覽器發起,詢問伺服器是否支援響應 伺服器發起,回覆瀏覽器已...