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 地址,进行下一步动作。
-