繁體中文(香港)
瀏覽器如何處理地址欄中的 URL 輸入?
當我們在瀏覽器中打開一個特定的 URL 時,瀏覽器如何加載和顯示內容?我們將按照事件發生的順序展示瀏覽器依次做了什麼。
除了使用自定義本機應用程序瀏覽特定網頁之外,大多數網頁都是用瀏覽器瀏覽的。因此,當我們在瀏覽器中打開一個特定的 URL 時,瀏覽器如何加載和顯示內容?我們將按照事件發生的順序展示瀏覽器依次做了什麼。
用戶在瀏覽器中輸入 URL
在我們之前的博客文章中,我們涵蓋了包括域名(例如 www.google.com
、blog.logto.io
等)在內的 URL 組件。
使用域名查詢 IP 地址
瀏覽器不能直接理解域名並找到相應的資源,需要知道具體的 IP 地址以定位網頁所需資源的位置。
瀏覽器會通過域名系統(DNS)找到對應於域名的 IP 地址。
為了讓查找 IP 地址的過程快到可能,域名與 IP 地址之間的對應關係通常使用各種緩存,例如瀏覽器緩存、操作系統緩存等等。
當緩存查找失敗時,我們會通過常規的 DNS 查找過程來找到域名的 IP 地址。這些是步驟:
- 當用戶在網頁瀏覽器中輸入
blog.logto.io
時,網頁瀏覽器請求 DNS 服務以獲取 IP 地址,對應的查詢由 DNS 解決器接收 - DNS 解決器查詢 DNS 根服務器 (.)
- 根服務器返回對應於一個頂級域(TLD)的 DNS 服務器地址(在這種情況下為
.io
)和一些相關信息 - DNS 解決器查詢
.io
TLD 服務器 .io
TLD 服務器返回logto.io
絕名服務器地址- DNS 解決器請求
logto.io
域名服務器 logto.io
域名服務器返回blog.logto.io
地址- DNS 解決器將
blog.logto.io
IP 地址轉發回網頁瀏覽器
然後,網頁瀏覽器可以從服務器請求相應的資源並渲染網站供用戶查看。
建立 TCP 連接
通過 DNS 服務獲得要瀏覽的域名對應的 IP 地址後,網頁瀏覽器啟動並建立與服務器的 TCP 連接。
獲取資源並渲染網頁
建立 TCP 連接後,瀏覽器啟動向服務器的網絡請求,獲得相應的資源,並基於獲得的資源渲染網頁內容供用戶瀏覽。