Skip to content

入门

基于 HTTP 现代标准 · 核于 2026-06

速查

  • DNS = 域名 → IP 的分布式数据库;访问网站第一步就是 DNS 解析
  • 域名分层(从右往左):根 . → 顶级域 TLD(com/cn)→ 二级域 → 子域;带末尾点的完整写法叫 FQDN
  • 四类服务器:(指向 TLD)/ TLD(指向权威)/ 权威(给最终答案)+ 递归解析器(替客户端跑全程)
  • 解析流程:浏览器缓存 → OS 缓存 → 递归解析器 → 根 → TLD → 权威 → 返回 IP(任一级缓存命中即跳步)
  • 递归 vs 迭代看立场:客户端→递归解析器是递归(要最终答案);解析器→各级服务器是迭代(只给引荐)
  • 传输层:默认 UDP 53(快);大响应(>512 字节)或区域传送用 TCP 53
  • 常见记录:A(IPv4) / AAAA(IPv6) / CNAME(别名) / MX(邮件) / TXT(验证) / NS / SOA
  • CNAME 限制:不能指 IP、同名不能共存其他记录、根域不能用 CNAME
  • 多级缓存 + TTL(权威下发的可缓存秒数):长 TTL 省查询、短 TTL 更新快;迁移前先降 TTL
  • 前端优化:<link rel="dns-prefetch"> 只提前解析、<link rel="preconnect"> 连 DNS+TCP+TLS 一起提前
  • 现代安全:DoH(DNS over HTTPS/443)、DoT(DNS over TLS/853)加密查询;DNSSEC 验真(非加密)

五分钟看懂一次 DNS 解析

在浏览器访问 www.example.com,到拿到它的 IP,DNS 这一层大致经历:

  1. 查缓存:浏览器自己的 DNS 缓存 → 操作系统缓存——命中就直接用,跳过后面所有步骤。
  2. 问递归解析器:没命中,就把域名交给「递归解析器」(通常是运营商或 8.8.8.8/1.1.1.1),由它替你跑完整个查询。
  3. 逐级追问:解析器依次问 根服务器(告诉它去问 .com 的 TLD 服务器)→ TLD 服务器(告诉它去问 example.com 的权威服务器)→ 权威服务器(给出 www.example.com 的 IP)。
  4. 回传并缓存:解析器把 IP 返回给你,并按 TTL 缓存一段时间,下次更快。
浏览器 ──① www.example.com? ──▶ 递归解析器
                                  │ ② .com 在哪? ─▶ 根服务器 → 去问 TLD
                                  │ ③ example.com? ─▶ TLD 服务器 → 去问权威
                                  │ ④ www 的 IP? ─▶ 权威服务器 → 1.2.3.4
浏览器 ◀────── ⑤ 1.2.3.4 ────────┘(并缓存 TTL 秒)

递归与迭代的区别

递归查询:你问解析器,要的是「最终答案」,解析器必须负责到底。迭代查询:解析器问根/TLD,它们不给最终答案、只给「下一步去问谁」的引荐。所以同一个递归解析器,对你是递归、对上游各级服务器是迭代。

DNS 解析排在 TCP/TLS 握手之前,是首次访问一个新域名的「隐形延迟」——这也是为什么前端要用 dns-prefetch/preconnect 提前解析。下面各页逐一展开:先看 DNS 作用与域名层级体系