文章摘要:今天和大家分享的是域名解析的流程。域名解析的具体流程补充:并不是每次域名解析都需要执行以上的流程,因为还有缓存。
大家好,我是程序员阿药。今天和大家分享的是域名解析的流程。
说到域名解析,那么首先要说一下DNS服务器。DNS服务器就像我们手机中的通讯录一样,一个名称对应一个电话号码,DNS服务器中是用一个域名对应一个IP地址。
DNS服务器有以下三种,它们之间的关系如图所示。
根DNS服务器(.)的信息保存在互联网中的所有DNS服务器中,所以当我们通过域名查找某个IP地址时,只要客户端能找到任意一台DNS服务器,就可以通过它找到根DNS服务器,然后逐层向下查找目标DNS服务器。
域名解析的具体流程
1. 客户端向本地DNS服务器发送一个请求,问的IP地址是什么,如果本地DNS服务器收到请求后在自己的缓存中能查找到该域名对应的IP地址则直接返回客户端,如果不能找到则向根DNS服务器询问。
2. 根DNS服务器收到本地DNS服务器询问后在自己的缓存中并不能找到该域名对应的IP地址,但是它发现该域名是以.com结尾的,然后它将管理.com结尾的顶级DNS服务器地址告诉了本地DNS服务器。
3. 本地DNS服务器向管理.com结尾的顶级DNS服务器询问,顶级DNS服务器也不能找到该域名对应的IP地址,但是找到了管理的权威DNS服务器,并且将地址告诉了本地DNS服务器。
4. 本地DNS服务器向权威DNS服务器询问,终于,权威服务器在自己的缓存中找到了对应的IP地址,然后告诉了本地DNS服务器。
5. 本地DNS服务器知道了该域名的IP地址后,将其告诉了客户端。到此为止,客户端终于知道了域名对应的IP地址,可以与目标服务器继续建立连接。
补充:并不是每次域名解析都需要执行以上的流程,因为还有缓存。执行域名解析前浏览器会先查看自己的缓存有没有这个域名对应的IP地址,有则返回,没有则去问操作系统的缓存中是否存在,也不存在的话,还会去查询本地hosts文件,再没有的话才会去问本地DNS服务器。