Skip to content

DNS 解析流程 | Resolving Domain Requests | Advance Web Development Quiz | #3

此文章是 FrontendMaster 課程的筆記

問題:連連看,把數字與英文字母對應起來

Browser sends request to [A]
[A] queries [B]
[B] responds with [C] IP address
[A] queries [C]
[C] responds with [D] IP address
[A] queries [D]
[D] responds with website's [E]

[1] Recursive DNS Resolver
[2] Root Name Server
[3] IP Address
[4] Top Level Domain Name Server
[5] Authoritative Name Server

瀏覽器是怎麼知道網站的 IP 位置的?

當使用者輸入網址後,瀏覽器只知道網域的名稱,例如:www.google.com,這個時候瀏覽器必須透過一系列的請求獲取真實的 IP 位址,才能夠開始發送 HTTP 請求。

名詞解釋

  • IP Address:連線到網路的裝置都會有自己的一個特殊的 IP 位址
  • Recursive DNS Resolver (遞迴 DNS 解析器):DNS 遞迴解析器是一種 DNS 伺服器,接受遞迴查詢並透過發出必要的請求來處理回應。接收由使用者端發送的查詢,並把查詢結果回傳。
  • Root Name Server (根名稱伺服器):是把可讀的名稱轉譯成 IP 位址的第一步。世界上只有 13 個 IP 位址提供根伺服器,不過事實上每個 IP 位址都有多個伺服器,一方面降低發生意外時無法使用,另一方面是可以分配給不同鄰近區域的使用者來提升速度
  • Top Level Domain Name server (TLD Name server、頂層網域名稱伺服器):這是搜尋特定 IP 位址的下一步,此伺服器維護共用通用網域副檔名的所有網域名稱的資訊。例如 .com,此伺服器維護所有以 .com 為結尾的網站資訊
  • Authoritative Name Server (權威名稱伺服器):這通常是遞迴 DNS 解析查詢的最後一步。其包含網域名稱的資訊,例如:google.com
  • ISP(Internet Service Provider、網際網路服務提供商):提供使用者上網服務的公司,例如中華電信、遠傳電信、台灣大哥大等。

瀏覽器發起請求前是怎麼獲取該網站的 IP 位址的?

  1. 瀏覽器一開始會把查詢送給「遞迴 DNS 解析器」,這通常是 ISP 提供的 DNS,或是像 Google DNS、Cloudflare DNS 這種公共 DNS。
  2. 遞迴解析器如果沒在快取裡找到,就會去問「根名稱伺服器」。
  3. 根名稱伺服器不會直接給你網站 IP,而是回覆「頂級網域名稱伺服器」的 IP,例如負責 .com.net.nl 等等的那一層。
  4. 遞迴解析器再去查詢對應的 TLD 名稱伺服器,TLD 伺服器會回傳「權威名稱伺服器」的 IP,也就是負責某個網域(像 website.com)的那台 DNS 伺服器。
  5. 遞迴解析器最後再去問這台權威名稱伺服器,權威伺服器裡面有你的網域實際的 DNS 記錄(A recordAAAA 等),會回傳網站真正的 IP 位址。
  6. 遞迴解析器把這個 IP 回傳給瀏覽器,瀏覽器就可以根據這個 IP 去連線該 Web server,開始建立 TCP 連線、送出 HTTP 請求,取得資源。

快取與 TTL

遞迴 DNS 解析器通常會做快取:對於常訪問的網站,不需要每次都從 Root → TLD → Authoritative 走完一輪,而是根據 DNS 記錄上的 TTL(Time To Live)決定快取多久,TTL 到期才會再重新查詢。

答案:

Browser sends request to [A]
[A] queries [B]
[B] responds with [C] IP address
[A] queries [C]
[C] responds with [D] IP address
[A] queries [D]
[D] responds with website's [E]

[A] - [1] Recursive DNS Resolver
[B] - [2] Root Name Server
[E] - [3] IP Address
[C] - [4] Top Level Domain Name Server
[D] - [5] Authoritative Name Server

參考

最後更新時間:

0 %
MIT Licensed | Copyright © 2025-present Wen-Hsiu's Blog