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

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

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

Darcy Ye
Darcy Ye
Developer

除了通過自定義原生應用瀏覽特定網頁之外,大多數網頁是在瀏覽器中瀏覽的。因此,當我們在瀏覽器中打開特定的 URL 時,瀏覽器是如何加載和顯示內容的?我們將按照事件發生的順序顯示瀏覽器所做的事情。

用戶在瀏覽器中輸入 URL

在我們之前的博客文章中,我們涵蓋了 URL 組件,包括所謂的主機/域名,例如 www.google.com blog.logto.io 等。

使用主機/域名查找 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 連接後,瀏覽器向伺服器發起網路請求,獲取相應的資源,並根據獲取到的資源渲染網頁內容供用戶瀏覽。