從輸入 URL 到頁面加載完成的過程中都發(fā)生了什么春贸?
- 鍵盤或觸屏輸入URL并回車確認(rèn)
- URL解析/DNS解析查找域名IP地址
- 網(wǎng)絡(luò)連接發(fā)起HTTP請求
- HTTP報文傳輸過程
- 服務(wù)器接收數(shù)據(jù)
- 服務(wù)器響應(yīng)請求/MVC
- 服務(wù)器返回數(shù)據(jù)
- 客戶端接收數(shù)據(jù)
- 瀏覽器加載/渲染頁面
- 打印繪制輸出
參考:
瀏覽器工作原理:從 URL 輸入到頁面展現(xiàn)到底發(fā)生了什么神僵?
從輸入 URL 到頁面加載完成的過程中都發(fā)生了什么事情卷胯?
瀏覽器工作原理
瀏覽器的主要組件為
- 用戶界面 - 包括地址欄枢析、前進(jìn)/后退按鈕、書簽菜單等奈辰。除了瀏覽器主窗口顯示的您請求的頁面外丈屹,其他顯示的各個部分都屬于用戶界面。
- 瀏覽器引擎 - 在用戶界面和呈現(xiàn)引擎之間傳送指令判族。
- 呈現(xiàn)引擎 - 負(fù)責(zé)顯示請求的內(nèi)容躺盛。如果請求的內(nèi)容是 HTML,它就負(fù)責(zé)解析 HTML 和 CSS 內(nèi)容五嫂,并將解析后的內(nèi)容顯示在屏幕上颗品。
- 網(wǎng)絡(luò) - 用于網(wǎng)絡(luò)調(diào)用,比如 HTTP 請求沃缘。其接口與平臺無關(guān)躯枢,并為所有平臺提供底層實現(xiàn)。
- 用戶界面后端 - 用于繪制基本的窗口小部件槐臀,比如組合框和窗口锄蹂。其公開了與平臺無關(guān)的通用接口,而在底層使用操作系統(tǒng)的用戶界面方法水慨。
- JavaScript 解釋器得糜。用于解析和執(zhí)行 JavaScript 代碼。
- 數(shù)據(jù)存儲晰洒。這是持久層朝抖。瀏覽器需要在硬盤上保存各種數(shù)據(jù),例如 Cookie谍珊。新的 HTML 規(guī)范 (HTML5) 定義了“網(wǎng)絡(luò)數(shù)據(jù)庫”治宣,這是一個完整(但是輕便)的瀏覽器內(nèi)數(shù)據(jù)庫。
瀏覽器主要組件
參考:
瀏覽器的工作原理:新式網(wǎng)絡(luò)瀏覽器幕后揭秘
How Browsers Work: Behind the scenes of modern web browsers
URL 和 URI URN的區(qū)別
URI: 唯一標(biāo)識砌滞,包括URL, URN
URL: 訪問位置
URN: 唯一名稱
參考:
The Difference Between URLs and URIs