第 1 步
用戶在瀏覽器中輸入 URL (www.bytebytego.com) 并回車峻呕。我們首先要做的是將 URL 轉(zhuǎn)換為 IP 地址。這個(gè)從 URL 到 IP 地址的映射通常存儲(chǔ)在緩存中趣效,因此瀏覽器會(huì)在多層緩存中查找 IP 地址:瀏覽器緩存山上、操作系統(tǒng)緩存、本地緩存和 ISP 緩存英支。如果瀏覽器在緩存中找不到映射佩憾,就會(huì)請求 DNS(Domain Name System)解析器進(jìn)行解析。
第 2 步
如果在任何緩存中都找不到 IP 地址干花,瀏覽器就會(huì)轉(zhuǎn)到 DNS 服務(wù)器進(jìn)行遞歸 DNS 查找妄帘,直到找到 IP 地址為止。
第 3 步
有了服務(wù)器的 IP 地址池凄,瀏覽器就會(huì)向服務(wù)器發(fā)送 HTTP 請求抡驼。為了安全訪問服務(wù)器資源,我們應(yīng)始終使用 HTTPS肿仑。瀏覽器首先通過 TCP 三次握手與服務(wù)器建立 TCP 連接致盟。然后向客戶端發(fā)送公鑰(Public Key)∮任浚客戶端使用公鑰加密會(huì)話密鑰(Session Key)并發(fā)送給服務(wù)器馏锡。服務(wù)器使用私鑰(Private Key)解密會(huì)話密鑰。然后伟端,客戶端和服務(wù)器就可以使用會(huì)話密鑰來交換加密數(shù)據(jù)杯道。
第 4 步
服務(wù)器處理請求并發(fā)回響應(yīng)。響應(yīng)成功時(shí)责蝠,狀態(tài)代碼為 200党巾。響應(yīng)包含 3 個(gè)部分:HTML、CSS 和 Javascript霜医。瀏覽器會(huì)解析 HTML 并生成 DOM 樹齿拂。瀏覽器還會(huì)解析 CSS 并生成 CSSOM 樹。然后肴敛,瀏覽器將 DOM 樹和 CSSOM 樹合并為渲染樹署海。瀏覽器渲染內(nèi)容并顯示給用戶。