DNS解析

DNS(Domain Name System): 将域名转换为ip的系统

假设访问 www.example.com

  1. 浏览器检查本地缓存,看有没有 www.example.com 的 IP 记录。
  2. 没有的话,交给操作系统的 DNS 解析器(Resolver)
  3. 操作系统查询本地缓存、hosts 文件。
  4. 还没有的话,去找递归 DNS 服务器(通常是 ISP 提供的,比如电信、联通)。
  5. 递归 DNS 开始递归解析:
    • 先问 根服务器 → 顶级域名服务器(.com) → 权威 DNS 服务器。
    • 最终拿到 www.example.com 的 IP 地址。
  6. 把解析结果返回给浏览器,缓存下来。

浏览器针对 DNS 解析的优化方案

浏览器会缓存 DNS 解析结果,一段时间内避免重复解析。

  • 比如 Chrome 默认 DNS 缓存时间是 1分钟左右(不同版本略有区别)。
  • DNS 响应中的 TTL(Time to Live)也会影响缓存时间。

      你可以在 Chrome 查看 DNS 缓存:地址栏输入:chrome://net-internals/#dns

开发者也可以在网页中手动指定预解析:

使用:dns-prefetch,告诉浏览器提前解析 cdn.example.com 的 IP,以加快后续访问。

1
<link rel="dns-prefetch" href="//cdn.example.com">

使用preconnect预连接: 相比 dns-prefetchpreconnect 不仅解析 DNS,还会建立 TCP 连接和 TLS 握手,适合需要大量请求的第三方资源:字体库、图片等

1
<link rel="preconnect" href="https://cdn.example.com">
posted @ 2025-08-23 08:13  我是格鲁特  阅读(12)  评论(0)    收藏  举报