面试题库 词条目录
前端Wiki/词条/DNS 与 CDN

DNS 与 CDN

定义域名解析到 IP 的过程与内容分发网络的加速原理,从 URL 到页面系列的必考环节

DNS 解析是分层的:浏览器缓存与操作系统 hosts 命中就直接返回,否则从本地域名服务器出发,依次向根域名服务器、顶级域名服务器、权威域名服务器查询,拿到 IP 后逐层缓存。每层都有 TTL 有效期,递归查询发生在客户端与本地服务器之间,迭代查询发生在各级服务器之间。

CDN 的原理是 DNS 把域名解析到离用户最近的边缘节点,节点缓存了静态资源,命中就直接返回,未命中再回源站拉取。面试答题时把两者串起来:DNS 决定去哪台机器,CDN 决定那台机器有没有缓存。优化手段包括 DNS 预解析与静态资源上 CDN。

JavaScript
// DNS 分层解析示意
const steps = [
  '1. 查浏览器 DNS 缓存,未命中继续往下',
  '2. 查操作系统 hosts 与本地缓存',
  '3. 本地域名服务器递归查询:根、顶级、权威三级',
  '4. 拿到 IP 后逐层缓存,TTL 到期前不再查询'
];
steps.forEach(s => console.log(s));
// CDN:DNS 返回最近的边缘节点 IP,缓存命中直接返回,否则回源
console.log('优化:静态资源上 CDN,link 标签的 dns-prefetch 提前解析域名');
⚠ 常见误区
🔗 相关词条从 URL 输入到页面渲染重绘回流与性能优化
← 返回来源章节从 URL 输入到页面渲染