Skip to the content.
DNS域名解析流程
- 检查本机的缓存配置+hosts解析
- 搜索浏览器自身的DNS缓存,看自身缓存中是否有对应的未过期条目,如果有则解析结束,没有则继续下面的步骤。
- 如果浏览器的缓存里没有找到对应的条目,操作系统也会有一个域名解析的过程,那么浏览器先搜索操作系统的 DNS 缓存中是否有这个域名对应的解析结果,如果找到且没有过期则停止搜索,解析到此结束。在Linux中通过
/etc/hosts
文件来设置
- 客户端通过浏览器访问域名为
www.baidu.com (www.baidu.com)
的网站,发起查询该域名的 IP 地址的 DNS 请求。该请求发送到了本地 DNS 服务器上。本地 DNS 服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地 DNS 服务器还要向 DNS 根服务器进行查询。
- 本地 DNS 服务器向根服务器发送 DNS 请求
- 根服务器没有记录该域名及 IP 地址的对应关系会返回可以查询到该地址的域名服务器(.com 服务器)的地址
- 本地 DNS 服务器向 .com 服务器发送 DNS 请求
- com 服务器收到请求后,不会直接返回域名和 IP 地址的对应关系,而是告诉本地 DNS 服务器,该域名可以在 baidu.com 域名服务器上进行解析获取 IP 地址,并告诉 baidu.com 域名服务器的地址。
- 本地 DNS 服务器向 baidu.com 域名服务器发送 DNS 请求
- baidu.com 服务器收到请求后,在自己的缓存表中发现了该域名和 IP 地址的对应关系,并将 IP 地址返回给本地 DNS 服务器。
- 本地 DNS 服务器将获取到与域名对应的 IP 地址返回给客户端,并且将域名和 IP 地址的对应关系保存在缓存中,以备下次别的用户查询时使用。
来源自