很多公司面试都会有这个问题,比如从浏览器输入www.baidu.com打开到显示页面,经过哪些。
从这个简单的问题,可以看出应聘者对网络这块的了解程度。
DNS说白了,就是将域名解析成IP的过程。为什么要解析ip,因为ip才是你真正要访问的东西的地址。
解析的过程中,会产生DNS挟持,DNS污染使得解析的IP错误,造成大面积访问404的问题,
所以很多公司采用httpDNS的方式,来缓存到本地环境,减少这块的错误。
一般DNS解析过程分为
1、递归查询,即发一次请求,等你给结果,主要用于本地dns服务器
2、迭代查询,发一次请求,返回一次,在请求,在返回....用于本地dns服务器向dns根域名服务器
DNS服务器是一个错综复杂的集群缓存服务器,一层一层递进式的方式,来提升效率
DNS根域名服务器的变动不是很频繁,所以本地都会有缓存,通过根域名可以找到域名的顶级dns服务器,也就是www.baidu.com中的.com,根域名告诉本地域名服务器,.com的IP地址,本地域名服务器就访问这个ip,查找下一级的域名对应的域名服务器IP地址,本地域名系统继续访问下一级的域名服务器,最后找到完整域名对应的IP。
当然在查找的过程中,都会先查缓存。
大致过程如下图所示
当然为了更好的展示自己的技能,你可以使用dig命令查看解析过程
dig www.baidu.com +trace 可以看到详细的dns解析过程。
参考资料:
DNS递归查询与迭代查询 - 皈依之路 - 博客园 (cnblogs.com)
不为人知的网络编程(九):理论联系实际,全方位深入理解DNS-网络编程/专项技术区 - 即时通讯开发者社区! (52im.net)