当一个用户在浏览器中输入www.taobao.com时,DNS解析将会有将近10个步骤
1:浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程结束浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常这个缓存时间为几分钟到几小时不等,可以通过TTL属性来设置
2:如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果,如果在本机中仍然无法完成域名的解析,就会真正请求域名服务器来解析这个域名
3:如何、怎么知道域名服务器呢?在我们的网络配置中都会有DNS服务器地址这一项,这个地址就用于解决前面两步都无法解析是要怎么办,操作系统会把这个域名发送给这里设置的LDNS,也就是本地区的域名服务器。这个DNS通常是提供给你本地互联网接入的一个DNS解析服务。大约有80%的域名解析到这里就已经完成了,所以LDNS主要承担了域名的解析工作
4;如果LDNS 仍没有命中,就直接Root Server域名服务器解析
5:根域名服务器返回本地域名服务器一个所查询的主域名服务器(gTLD Server)地址。gTLD是国际顶级域名服务器
6:本地域名服务器(LOCAL DNS SERVER)在向上一步返回的gTLD服务器发送请求
7:接受请求的gTLD服务器查找并返回此域名对应的Name Server 域名服务器的地址,这个Name Server通常就是你注册的域名服务器,
8:Name Server 域名服务器会查询存储的域名和Ip的映射关系表,正常情况下都根据域名得到目标的IP记录,连同一个TTL值返回给DNS Server域名服务器
9:返回该域名对应的Ip和TTL值,Local DNS Server 会缓存这个域名个和IP的对应的关系,缓存的时间由TTL值控制
10:把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束
在实际的DNS解析过程中,可能还不止这10步,如Name Server可能有多级,或者有一个GTM来负载均衡控制,这都可能会影响域名解析的过程