分為4個(gè)步驟:
當(dāng)發(fā)送一個(gè)URL請求時(shí),不管這個(gè)URL是Web頁面的URL還是Web頁面上每個(gè)資源的URL,瀏覽器都會(huì)開啟一個(gè)線程來處理這個(gè)請求,同時(shí)在遠(yuǎn)程DNS服務(wù)器上啟動(dòng)一個(gè)DNS查詢。這能使瀏覽器獲得請求對(duì)應(yīng)的IP地址。
瀏覽器與遠(yuǎn)程
Web
服務(wù)器通過TCP
三次握手協(xié)商來建立一個(gè)TCP/IP
連接。該握手包括一個(gè)同步報(bào)文,一個(gè)同步-應(yīng)答報(bào)文和一個(gè)應(yīng)答報(bào)文,這三個(gè)報(bào)文在 瀏覽器和服務(wù)器之間傳遞。該握手首先由客戶端嘗試建立起通信,而后服務(wù)器應(yīng)答并接受客戶端的請求,最后由客戶端發(fā)出該請求已經(jīng)被接受的報(bào)文。一旦
TCP/IP
連接建立,瀏覽器會(huì)通過該連接向遠(yuǎn)程服務(wù)器發(fā)送HTTP
的GET
請求。遠(yuǎn)程服務(wù)器找到資源并使用HTTP響應(yīng)返回該資源,值為200的HTTP響應(yīng)狀態(tài)表示一個(gè)正確的響應(yīng)。此時(shí),
Web
服務(wù)器提供資源服務(wù),客戶端開始下載資源。
請求返回后,便進(jìn)入了我們關(guān)注的前端模塊
簡單來說,瀏覽器會(huì)解析HTML
生成DOM Tree
,其次會(huì)根據(jù)CSS生成CSS Rule Tree,而javascript
又可以根據(jù)DOM API
操作DOM