繁體中文(台灣)
瀏覽器如何處理地址欄中的 URL 輸入?
當我們在瀏覽器中打開特定 URL 時,瀏覽器如何加載和顯示內容?我們將按照事件發生的順序展示瀏覽器所做的事情。
除了通過自定義原生應用瀏覽特定網頁之外,大多數網頁是在瀏覽器中瀏覽的。因此,當我們在瀏覽器中打開特定的 URL 時,瀏覽器是如何加載和顯示內容的?我們將按照事件發生的順序顯示瀏覽器所做的事情。
用戶在瀏覽器中輸入 URL
在我們之前的博客文章中,我們涵蓋了 URL 組件,包括所謂的主機/域名,例如 www.google.com
blog.logto.io
等。
使用主機/域名查找 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 連接後,瀏覽器向伺服器發起網路請求,獲取相應的資源,並根據獲取到的資源渲染網頁內容供用戶瀏覽。