面试必备-计算机网络-DNS

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

相关术语:
TTL
:表示缓存时间,即600秒之内不用重新查询
A记录
:表示地址记录(Address)返回域名指向的IP地址
CNAME
:规范名称记录(Canonical Name),返回另一个域名,即当前查询的域名是另一个域名的跳转
DNS有关的网络性能优化
1、减少DNS查找,避免重定向 浏览器DNS缓存 、计算机DNS缓存、 服务器DNS缓存、使用Keep-Alive特性 来减少DNS查找。考虑影响DNS缓存的因素:
- 服务器可以设置TTL值表示DNS记录的存活时间。本机DNS缓存将根据这个TTL值判断DNS记录什么时候被抛弃,这个TTL值一般都不会设置很大,主要是考虑到快速故障转移的问题。
- 浏览器DNS缓存也有自己的过期时间,这个时间是独立于本机DNS缓存的,相对也比较短,例如chrome只有1分钟左右。
- 浏览器DNS记录的数量也有限制,如果短时间内访问了大量不同域名的网站,则较早的DNS记录将被抛弃,必须重新查找。不过即使浏览器丢弃了DNS记录,操作系统的DNS缓存也有很大机率保留着该记录,这样可以避免通过网络查询而带来的延迟。
2、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解析过程做了简短的介绍,相关的安全防范和网络性能优化,还需要更多的学习。
参考: