一個(gè)頁(yè)面從輸入 URL到頁(yè)面加載顯示完成,這個(gè)過(guò)程中都發(fā)生了什么

當(dāng)用戶(hù)在瀏覽器中輸入U(xiǎn)RL并按下回車(chē)鍵后,以下是一個(gè)頁(yè)面從輸入U(xiǎn)RL到加載顯示完成的過(guò)程中所發(fā)生的主要步驟:

1DNS解析

1.DNS解析:瀏覽器首先會(huì)解析URL中的域名部分,將其轉(zhuǎn)換為對(duì)應(yīng)的IP地址。它會(huì)查詢(xún)本地DNS緩存,如果沒(méi)有找到,則向DNS服務(wù)器發(fā)送請(qǐng)求進(jìn)行解析。

2建立TCP連接

2.建立TCP連接:瀏覽器使用HTTP協(xié)議Web服務(wù)器建立TCP連接。這個(gè)過(guò)程涉及到三次握手,即客戶(hù)端發(fā)送SYN包,服務(wù)器返回SYN+ACK包最后客戶(hù)端發(fā)送ACK包確認(rèn)連接建立。

3發(fā)送HTTP請(qǐng)求

3.發(fā)送HTTP請(qǐng)求:建立TCP連接后,瀏覽器會(huì)向Web服務(wù)器發(fā)送HTTP請(qǐng)求。請(qǐng)求中包含了請(qǐng)求方·(GET、POST等)、請(qǐng)求頭(包含用戶(hù)代理、Cookie等信息)以及請(qǐng)求體(對(duì)于POST請(qǐng)求)。

4服務(wù)器處理請(qǐng)求

4.服務(wù)器處理請(qǐng)求:Web服務(wù)器接收到瀏覽器發(fā)送的HTTP請(qǐng)求后,會(huì)根據(jù)請(qǐng)求的內(nèi)容進(jìn)行處理。這可能涉及到查詢(xún)數(shù)據(jù)庫(kù)、讀取文件等操作。

5服務(wù)器響應(yīng)

5.服務(wù)器響應(yīng)Web服務(wù)器根據(jù)請(qǐng)求的處理結(jié)果生成HTTP響應(yīng),并將其發(fā)送回瀏覽器。響應(yīng)中包含了狀態(tài)碼響應(yīng)頭(包含內(nèi)容類(lèi)型、緩存策略等信息)以及響應(yīng)體(包含HTML、CSS、JavaScript等頁(yè)面內(nèi)容)。

6下載頁(yè)面資源

6.下載頁(yè)面資源:瀏覽器收到服務(wù)器的響應(yīng)后,會(huì)解析響應(yīng)頭,確定響應(yīng)的內(nèi)容類(lèi)型。如果是HTML頁(yè)面,瀏覽器會(huì)開(kāi)始下載頁(yè)面中引用的其他資源,如CSS文件、JavaScript文件、圖片等。

7頁(yè)面渲染

7.頁(yè)面渲染:瀏覽器使用HTML解析器將HTML文檔解析成DOM樹(shù),并根據(jù)CSS樣式表解析出樣式規(guī)則。然后,瀏覽器會(huì)將DOM樹(shù)和樣式規(guī)則結(jié)合起來(lái),生成渲染樹(shù)。最后,瀏覽器根據(jù)渲染樹(shù)進(jìn)行布局和繪制,將頁(yè)面內(nèi)容顯示在屏幕上。

8完成加載

8.完成加載:當(dāng)所有頁(yè)面資源都下載完成并且頁(yè)面渲染完成后,瀏覽器會(huì)觸發(fā)頁(yè)面加載完成的事件。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容