域名解析全过程
域名就是浏览器访问网站地址栏输入的网址,如访问百度搜索时www.baidu.com。
想要访问网站,就要找到网站服务器的ip地址,域名和ip地址是对应关系,所以域名解析的过程就是通过域名找到对应的ip地址。
这个域名解析的过程可以分为十步,如果在当前步骤查询到域名对应的ip地址就不会继续后面的步骤:
1.浏览器搜索自己的DNS(Domain Name System,域名系统)缓存。
2.搜索操作系统中的DNS,如内存中的DNS缓存或者本地的hosts文件(Windows环境下,维护一张域名与IP地址的对应表,位置一般在 C:\Windows\System32\drivers\etc\hosts)
3.使用递归查询的方式查询本地域名解析服务器,该服务器地址可以通过手动设置,未设置则使用路由器中本地DNS地址。
4.本地域名服务器采用迭代查询的方式。
-
向根域名服务器(其虽然没有每个域名的具体信息,但存储了负责每个域,如com、net、org等的解析的顶级域名服务器的地址)查找,根域名服务器返回com域的顶级域名服务器的地址。
-
本地域名服务器 向com域的顶级域名服务器发起请求,返回baidu.com权限域名服务器(权限域名服务器,用来保存该区中的所有主机域名到IP地址的映射)地址
-
本地域名服务器 向baidu.com权限域名服务器发起请求,得到www.baidu.com的IP地址
5.本地域名服务器 将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来。
6.操作系统将 IP 地址返回给浏览器,同时自己也将IP地址缓存起来。
7.至此,浏览器已经得到了域名对应的IP地址
递归查询和迭代查询的区别:
- 递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
- 迭代查询DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果。
原文链接:https://blog.csdn.net/WGDSXJJ/article/details/110917357