接下來封裝包會從本地計算機出發(fā),經過本地網絡,再通過調制解調器把數(shù)字信號轉換成模擬信號。在傳輸線路的另一端,另一個調制解調器把模擬信號轉換回數(shù)字信號,交由下一網絡節(jié)點進行處理,最終封包會到達目標服務器。
接下來封裝包會從本地計算機出發(fā),經過本地網絡,再通過調制解調器把數(shù)字信號轉換成模擬信號。在傳輸線路的另一端,另一個調制解調器把模擬信號轉換回數(shù)字信號,交由下一網絡節(jié)點進行處理,最終封包會到達目標服務器。
發(fā)送和接收的過程在TCP連接期間會發(fā)送很多次(三次握手):客戶端將封包發(fā)送給服務端,并建立連接設置初始的序列號;服務端收到封包后做相應處理,并且向客戶端表明自己接受到了第一個封包;客戶端再次發(fā)送一個封包來確認這次連接。這就是建立連接三次握手的過程。
TLS握手
客戶端發(fā)送相應消息給服務端,表明可用的加密算法以及壓縮算法。
服務端返回給客戶端一個消息,包含了TLS版本,以及自己使用的加密算法和壓縮算法等。
客戶端驗證服務端發(fā)送的信息是否可用,如果可用,就生成一段加密的隨機數(shù)返給服務端。
服務端對這段密文進行解密,并生成自己的主密鑰。
HTTP協(xié)議
瀏覽器向服務器發(fā)送請求頭,請求頭內容包括:請求數(shù)據(jù)方式,http版本號,
域名等頭部信息。接下來,服務器端返回一個響應碼,表明這次請求的狀態(tài)。瀏覽器會從自己的緩存中取出想要的內容,在解析完 HTML 之后,瀏覽器會重復上面的過程,直到HTML頁面引入的所有資源(圖片,CSS,JS等等)全部都獲取完畢。
瀏覽器
當服務器提供了資源之后(HTML,CSS,JS,圖片等),瀏覽器會執(zhí)行下面的操作:
HTML解析。HTML解析器的主要工作是對HTML文檔進行解析,解析出HTML的內容。
CSS解析。分析CSS文件內容以及屬性值,將每個CSS文件都被解析成一個樣式表對象。
頁面渲染。通過一些列計算并呈現(xiàn)DOM樹,過程就是測量-排版-繪制頁面。在渲染過程中,對圖形的渲染處理會使用圖形處理器GPU。
后期渲染
渲染結束后,瀏覽器根據(jù)時間機制運行JavaScript代碼(比如動畫)或與用戶交互。類似Flash和Java的插件也會運行,這些
腳本也可能改變網頁的內容和布局,并產生又一輪渲染與繪制。
以上就是
網站頁面從輸入 URL 到頁面加載的全部過程。