DNS 解析详解:浏览器如何解码网站地址

你输入 www.google.com 并按下回车键。页面瞬间加载完成。

你的浏览器并不知道 Google 的具体位置。它必须进行询问。在毫秒之间,会发生一系列快速的查询。这个系统就是域名系统(Domain Name System,简称 DNS)。

可以将 DNS 想象成互联网的电话簿。它将像 www.google.com 这样的名称转换为像 142.250.80.46 这样的 IP 地址。如果没有它,你将不得不记住每个网站对应的数字。

查询工作原理:

域名结构:

  • 子域名 (Subdomain):网站的一个部分(例如 www)
  • 二级域名 (Second-Level Domain):品牌名称(例如 google)
  • 顶级域名 (TLD):类别或国家(例如 .com)

在搜索网络之前,你的计算机有两个检查点:

  • 浏览器缓存:如果你最近访问过该网站,IP 地址已经存储在其中。
  • Hosts 文件:计算机上的本地文件,用于手动映射。

如果上述检查都失败了,递归解析器 (Recursive Resolver) 就会接管。这通常由你的 ISP(互联网服务提供商)提供。你也可以使用更快的选项,例如 Google (8.8.8.8) 或 Cloudflare (1.1.1.1)。

解析器遵循以下层级结构:

  • 根服务器 (Root Server):将解析器引导至正确的 TLD 服务器。
  • TLD 服务器:将解析器引导至特定的权威域名服务器 (Authoritative Name Server)。
  • 权威域名服务器 (Authoritative Name Server):持有实际的 IP 地址并将其返回。

随后,解析器会将此答案保存一段时间。这段时间被称为 TTL (Time To Live,生存时间)。高 TTL 意味着重复查询的速度更快;低 TTL 则有助于在快速更换服务器时及时更新。

常见的 DNS 记录类型:

  • A:将域名映射到 IPv4 地址。
  • AAAA:将域名映射到 IPv6 地址。
  • CNAME:为另一个域名创建别名。
  • MX:将电子邮件引导至正确的服务器。
  • TXT:持有用于验证或安全性的文本。

DNS 查询通常是明文传输的。这意味着你的 ISP 可以看到它们。你可以使用 DNS over HTTPS (DoH) 或 DNS over TLS (DoT) 来加密这些数据,从而获得更好的隐私保护。

DNS 是互联网不可见的基石。理解它有助于你排查部署延迟和服务器迁移中的问题。

来源:https://dev.to/jinkrish/dns-explained-how-your-browser-decodes-website-addresses-2bcm