入门
基于 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 这一层大致经历:
- 查缓存:浏览器自己的 DNS 缓存 → 操作系统缓存——命中就直接用,跳过后面所有步骤。
- 问递归解析器:没命中,就把域名交给「递归解析器」(通常是运营商或
8.8.8.8/1.1.1.1),由它替你跑完整个查询。 - 逐级追问:解析器依次问 根服务器(告诉它去问
.com的 TLD 服务器)→ TLD 服务器(告诉它去问 example.com 的权威服务器)→ 权威服务器(给出www.example.com的 IP)。 - 回传并缓存:解析器把 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 作用与域名层级体系。