图解域名解析成IP的全过程(你浏览器摁下一个网址后发生了啥?)
文章目录
- 第一步:检查浏览器缓存中是否缓存过该域名对应的IP地址
- 第二步:如果在浏览器缓存中没有找到IP,那么将继续查找本机系统是否缓存过IP
- 第三步:向本地域名解析服务系统发起域名解析的请求
- 第四步:向根域名解析服务器发起域名解析请求
- 第五步:根域名服务器返回顶级域名解析服务器地址
- 第六步:向顶级域名服务器发起解析请求
- 第七步:顶级域名服务器接收请求并返回权限域名服务器
- 第八步:权限域名服务器返回IP地址给本地服务器
- 第九步:本地域名服务器缓存解析结果
IP解析步骤
第一步:检查浏览器缓存中是否缓存过该域名对应的IP地址
用户通过浏览器浏览过某网站之后,浏览器就会自动缓存该网站域名对应的地址,当用户再次访问的时候,浏览器就会从缓存中查找该域名对应的IP地址,因为缓存不仅是有大小限制,而且还有时间限制(域名被缓存的时间通过属性来设置),所以存在域名对应的找不到的情况(也确实很常见)。
当浏览器从缓存中找到了该网站域名对应的地址,那么整个解析过程结束,如果没有找到,将进行下一步骤。
另外:对于的缓存时间问题,不宜设置太长的缓存时间,时间太长,如果域名对应的发生变化,那么用户将在一段时间内无法正常访问到网站,如果太短,那么又造成频繁解析域名。
第二步:如果在浏览器缓存中没有找到IP,那么将继续查找本机系统是否缓存过IP
如果第一个步骤没有完成对域名的解析过程,那么浏览器会去系统缓存中查找系统是否缓存过这个域名对应的地址,也可以理解为系统自己也具备域名解析的基本能力。
在系统中,可以通过设置文件来将域名手动绑定到某上,文件位置在。对于普通用户,并不推荐自己手动绑定域名和,对于开发者来说,通过绑定域名和,可以轻松切换环境,可以从测试环境切换到开发环境,方便开发和测试。
也因此在系统中,黑客常常修改用户的电脑的文件,将用户常常访问的域名绑定到他指定的上,从而实现了本地解析,导致这些域名被劫持。在或者系统中,文件在,修改该文件也可以实现同样的目的。
前两步都是在本机上完成的,从第三步开始,才正在地向远程DNS服务器发起解析域名的请求。
第三步:向本地域名解析服务系统发起域名解析的请求
如果在本机上无法完成域名的解析,那么系统只能请求本地域名解析服务系统进行解析,本地域名系统一般都是本地区的域名服务器,比如你连接的校园网,那么域名解析系统就在你的校园机房里,如果你连接的是电信、移动或者联通的网络,那么本地域名解析服务器就在本地区,由各自的运营商来提供服务。
第四步:向根域名解析服务器发起域名解析请求
本地域名解析器还没有完成解析的话,那么本地域名解析服务器将向根域名服务器发起解析请求。
第五步:根域名服务器返回顶级域名解析服务器地址
本地域名解析向根域名服务器发起解析请求,根域名服务器返回的是所查域的通用顶级域地址,常见的通用顶级域有、com、cn、org等。
第六步:向顶级域名服务器发起解析请求
本地域名解析服务器向顶级域名服务器(gTLD服务器)发起请求。
第七步:顶级域名服务器接收请求并返回权限域名服务器
服务器接收本地域名服务器发起的请求,并根据需要解析的域名,找到该域名对应的域名服务器,通常情况下,这个服务器就是你注册的域名服务器,那么你注册的域名的服务商的服务器将承担起域名解析的任务。
第八步:权限域名服务器返回IP地址给本地服务器
服务器查找域名对应的地址,将地址连同值返回给本地域名服务器。
第九步:本地域名服务器缓存解析结果
本地域名服务器缓存解析后的结果,缓存时间由时间来控制。
图解演练
就拿浏览器输入www.yyl.com为例子,我们解析步骤如下所示(俺自己画的,拿图的时候给俺个一键三连谢谢),就不写文字解释了,下面画的挺详细的: