繁體中文(香港)
  • browser
  • url
  • process
  • domain name service
  • DNS
  • IP address

瀏覽器如何處理地址欄中的 URL 輸入?

當我們在瀏覽器中打開一個特定的 URL 時,瀏覽器如何加載和顯示內容?我們將按照事件發生的順序展示瀏覽器依次做了什麼。

Darcy Ye
Darcy Ye
Developer

除了使用自定義本機應用程序瀏覽特定網頁之外,大多數網頁都是用瀏覽器瀏覽的。因此,當我們在瀏覽器中打開一個特定的 URL 時,瀏覽器如何加載和顯示內容?我們將按照事件發生的順序展示瀏覽器依次做了什麼。

用戶在瀏覽器中輸入 URL

在我們之前的博客文章中,我們涵蓋了包括域名(例如 www.google.comblog.logto.io 等)在內的 URL 組件。

使用域名查詢 IP 地址

瀏覽器不能直接理解域名並找到相應的資源,需要知道具體的 IP 地址以定位網頁所需資源的位置。

瀏覽器會通過域名系統(DNS)找到對應於域名的 IP 地址。

為了讓查找 IP 地址的過程快到可能,域名與 IP 地址之間的對應關係通常使用各種緩存,例如瀏覽器緩存、操作系統緩存等等。

當緩存查找失敗時,我們會通過常規的 DNS 查找過程來找到域名的 IP 地址。這些是步驟:

  1. 當用戶在網頁瀏覽器中輸入 blog.logto.io 時,網頁瀏覽器請求 DNS 服務以獲取 IP 地址,對應的查詢由 DNS 解決器接收
  2. DNS 解決器查詢 DNS 根服務器 (.)
  3. 根服務器返回對應於一個頂級域(TLD)的 DNS 服務器地址(在這種情況下為 .io)和一些相關信息
  4. DNS 解決器查詢 .io TLD 服務器
  5. .io TLD 服務器返回 logto.io 絕名服務器地址
  6. DNS 解決器請求 logto.io 域名服務器
  7. logto.io 域名服務器返回 blog.logto.io 地址
  8. DNS 解決器將 blog.logto.io IP 地址轉發回網頁瀏覽器

然後,網頁瀏覽器可以從服務器請求相應的資源並渲染網站供用戶查看。

建立 TCP 連接

通過 DNS 服務獲得要瀏覽的域名對應的 IP 地址後,網頁瀏覽器啟動並建立與服務器的 TCP 連接。

獲取資源並渲染網頁

建立 TCP 連接後,瀏覽器啟動向服務器的網絡請求,獲得相應的資源,並基於獲得的資源渲染網頁內容供用戶瀏覽。