DNS 域名如何解析的?
DNS 域名解析采用的是递归查询的方
先去找 DNS 缓存->缓存找不到就去找根域名服务器->根域名又会去找下一级,递归查找之后,找到了,
给我们的 web 浏览器。
- 浏览器首先搜索自身的DNS缓存,看缓存中是否有 www.abc.com 这个域名,有而且没有过期的
话,解析结束。 - 如果浏览器自身的缓存中没有找到,则会搜索操作系统自身的DNS缓存,如果找到且没有过期则停
止搜索,解析到此结束。 - 如果在操作系统的DNS缓存中也没有找到,那么尝试读取hosts文件,有则解析成功,解析到此结
束。 - 如果在hosts文件中也没有找到,浏览器会发起一个
DNS(Domain Name System:域名服务协议)系统调用,向本地配置的首选DNS服务器发起域
名解析请求
(递归请求) - 运营商的DNS服务器首先查找自身的缓存,如果能找到且没有过期则解析成功。
- 如果没有找到,则运营商的 DNS 代我们的浏览器发起迭代DNS解析请求。
- 运营商DNS首先会查找根域DNS的IP地址(这个DNS服务器内置13台根DNS域服务器的IP地
址),找到根域的 DNS 地址,就会向其发起请求((问一下 www.abc.com 这个域名的ip地址
是多少啊?))。根域发现这是一个 com 域(*域)的域名,于是返回com域的IP地址,
然后运营商的DNS就得到com域的IP地址。 - 运营商的DNS得到com域的IP地址之后又向com域的IP地址发起地址请求(问一下
www.abc.com 这个域名的IP地址是多少啊?)。 com 域这台服务器告诉运营商的 DNS 我不知
道 www.abc.com 这个域名的IP地址,但是我知道 abc.com 这个域名的DNS地址,你去找它
吧。 - 运营商的 DNS 又向 abc.com 这个域名的DNS地址发起请求,(问一下 www.abc.com 这个域名
的IP地址是多少?) - 这个时候 abc.com 域的 DNS 服务器在本地查找。
- 把找到的结果发给运营商的 DNS 服务器,这个时候运营商的 DNS 服务器就拿到了
www.abc.com 对应的IP地址,并返回给 Windows 系统内核,内核就把这个结果返回给浏览
器,最终浏览器得到这个 IP 地址,进行下一步动作。