
💡 DNS: Domain Name System
作用:根据域名查询对应主机 IP
解析与查询过程
解析过程:
- 查找浏览器缓存,Chrome 大概 1 分钟
- 寻找系统缓存(因系统而异)
- 递归 ISP DNS 缓存(比如腾讯/电信),多数查询是在这一步找到的
- 迭代 搜索根域名服务器

相关术语:
TTL
:表示缓存时间,即 600 秒之内不用重新查询A记录
:地址记录 (Address),返回域名指向的 IP 地址CNAME
:规范名称记录 (Canonical Name),返回另一个域名,即当前查询的域名是另一个域名的跳转
DNS有关的网络性能优化
-
减少 DNS 查找,避免重定向
- 浏览器 DNS 缓存
- 计算机 DNS 缓存
- 服务器 DNS 缓存
- 使用 Keep-Alive 特性 来减少 DNS 查找
考虑影响 DNS 缓存的因素:
- 服务器可以设置 TTL 值表示 DNS 记录的存活时间。本机 DNS 缓存将根据这个 TTL 值判断 DNS 记录什么时候被抛弃,这个 TTL 值一般都不会设置很大,主要是考虑到快速故障转移的问题。
- 浏览器 DNS 缓存也有自己的过期时间,这个时间是独立于本机 DNS 缓存的,相对也比较短,例如 Chrome 只有 1 分钟左右。
- 浏览器 DNS 记录的数量也有限制,如果短时间内访问了大量不同域名的网站,则较早的 DNS 记录将被抛弃,必须重新查找。不过即使浏览器丢弃了 DNS 记录,操作系统的 DNS 缓存也有很大机率保留着该记录,这样可以避免通过网络查询而带来的延迟。
-
DNS 的预解析
可以通过 meta 信息来告知浏览器,这个页面要做 DNS 预解析:
<meta http-equiv="x-dns-prefetch-control" content="on" />
可以使用 link 标签来强制对 DNS 做预解析:
<link rel="dns-prefetch" href="http://ke.qq.com/" />
当客户端的 DNS 缓存为空时,DNS 查找的数量与 Web 页面中唯一主机名的数量相等。减少唯一主机名的数量就可以减少 DNS 查找的数量。
建议使用较少的域名来减少 DNS 查找(2-4 个主机)。
本文是前端与计算机网络培训的一点总结,关于 DNS 解析过程做了简短的介绍,相关的安全防范和网络性能优化,还需要更多的学习。
参考:
Read more

面试必备-计算机网络-目录
计算机网络基本是面试必考的内容,理解得越深越好。曾经在字节的面试中被面试官深挖到TCP快重传,快恢复等稍微深度的知识点,留下了比较深的印象。总之,网络协议的进化过程也是一部发现问题、分析问题、解决问题的经验史。对解决工作中具体业务问题也有很大的帮助,建议着重学习~

面试必备-计算机网络-TCP
TCP(Transmission Control Protocol)是计算机网络中的一个重要协议,它是一种面向连接的、可靠的、基于字节流的传输层协议。TCP 是互联网协议套件(TCP/IP)中的一个重要组成部分,它是 Internet 协议(IP)的可靠传输层协议。

面试必备-计算机网络-UDP与TCP区别
UDP与TCP区别