一、Chrome浏览器 会首先搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否有www.linux178.com 对应的条目,并且没有过时,若是有且没有过时则解析到此结束。 注:咱们怎么查看Chrome自身的缓存?可使用 chrome://net-internals/#dns 来进行查看linux
二、若是浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索操做系统自身的DNS缓存,若是找到且没有过时则中止搜索解析到此结束. 注:怎么查看操做系统自身的DNS缓存,以Windows系统为例,能够在命令行下使用 ipconfig /displaydns 来进行查看chrome
三、若是在Windows系统的DNS缓存也没有找到,那么尝试读取hosts文件(位于C:\Windows\System32\drivers\etc),看看这里面有没有该域名对应的IP地址,若是有则解析成功。浏览器
四、若是在hosts文件中也没有找到对应的条目,浏览器就会发起一个DNS的系统调用,就会向本地配置的首选DNS服务器(通常是电信运营商提供的,也可使用像Google提供的DNS服务器)发起域名解析请求(经过的是UDP协议向DNS的53端口发起请求,这个请求是递归的请求,也就是运营商的DNS服务器必须得提供给咱们该域名的IP地址),运营商的DNS服务器首先查找自身的缓存,找到对应的条目,且没有过时,则解析成功。若是没有找到对应的条目,则有运营商的DNS代咱们的浏览器发起迭代DNS解析请求,它首先是会找根域的DNS的IP地址(这个DNS服务器都内置13台根域的DNS的IP地址),找打根域的DNS地址,就会向其发起请求(请问www.linux178.com这个域名的IP地址是多少啊?),根域发现这是一个顶级域com域的一个域名,因而就告诉运营商的DNS我不知道这个域名的IP地址,可是我知道com域的IP地址,你去找它去,因而运营商的DNS就获得了com域的IP地址,又向com域的IP地址发起了请求(请问www.linux178.com这个域名的IP地址是多少?),com域这台服务器告诉运营商的DNS我不知道www.linux178.com这个域名的IP地址,可是我知道linux178.com这个域的DNS地址,你去找它去,因而运营商的DNS又向linux178.com这个域名的DNS地址(这个通常就是由域名注册商提供的,像万网,新网等)发起请求(请问www.linux178.com这个域名的IP地址是多少?),这个时候linux178.com域的DNS服务器一查,诶,果然在我这里,因而就把找到的结果发送给运营商的DNS服务器,这个时候运营商的DNS服务器就拿到了www.linux178.com这个域名对应的IP地址,并返回给Windows系统内核,内核又把结果返回给浏览器,终于浏览器拿到了www.linux178.com对应的IP地址,该进行一步的动做了。缓存
注:通常状况下是不会进行如下步骤的服务器
若是通过以上的4个步骤,尚未解析成功,那么会进行以下步骤:操作系统
五、操做系统就会查找NetBIOS name Cache(NetBIOS名称缓存,就存在客户端电脑中的),那这个缓存有什么东西呢?凡是最近一段时间内和我成功通信的计算机的计算机名和Ip地址,就都会存在这个缓存里面。什么状况下该步能解析成功呢?就是该名称正好是几分钟前和我成功通讯过,那么这一步就能够成功解析。命令行
六、若是第5步也没有成功,那会查询WINS 服务器(是NETBIOS名称和IP地址对应的服务器)code
七、若是第6步也没有查询成功,那么客户端就要进行广播查找递归
八、若是第7步也没有成功,那么客户端就读取LMHOSTS文件(和HOSTS文件同一个目录下,写法也同样)dns
若是第八步尚未解析成功,那么就宣告此次解析失败,那就没法跟目标计算机进行通讯。只要这八步中有一步能够解析成功,那就能够成功和目标计算机进行通讯。