八分钟带你读懂 DNS 域名解析流程

前言

今天方木 八分钟带大家读懂 DNS域名解析流程,分钟在讲解 DNS域名解析流程前,读懂我们先知道下 什么是域名 DNS 。

什么是解析 DNS

DNS(Domain Name System)是域名系统的英文缩写 ,是流程一种组织成域层次结构的计算机和网络服务命名系统,用于 TCP/IP 网络。分钟

当我们在浏览器输入一个 URL 地址时,读懂浏览器要向这个 URL 的域名主机名对应的服务器发送请求 ,就得知道服务器的模板下载解析 IP,对于浏览器来说,流程DNS 的分钟作用就是将主机名转换成 IP 地址 。

DNS域名解析流程

DNS 域名解析,读懂简单地说就是域名把域名翻译成 IP 地址。例如:把 www.baidu.com 这个域名翻译成对应 IP 220.181.38.251  ,解析这里只是流程举个例子 。

域名解析流程

上图中分 8 个步骤介绍了域名解析的流程,但在此之前会先检查本机的缓存配置+ hosts 解析 ,然后才真正执行上图的服务器租用流程 :

浏览器缓存检查

浏览器会首先搜索浏览器自身的 DNS 缓存 ,缓存时间比较短,大概只有1分钟 ,且只能容纳 1000 条缓存,看自身的缓存中是否有对应的条目,而且没有过期,如果有且没有过期则解析到此结束。

操作系统缓存检查 + hosts 解析

如果浏览器的缓存里没有找到对应的条目,操作系统也会有一个域名解析的过程 ,香港云服务器那么浏览器先搜索操作系统的 DNS 缓存中是否有这个域名对应的解析结果 ,如果找到且没有过期则停止搜索,解析到此结束。

在 Linux 中可以通过 /etc/hosts 文件来设置,可以将任何域名解析到任何能够访问的IP 地址。如果在这里指定了一个域名对应的 IP 地址 ,那么浏览器会首先使用这个 IP地址 。当解析到这个配置文件中的某个域名时,操作系统会在缓存中缓存这个解析结果,缓存的高防服务器时间同样是受这个域名的失效时间和缓存的空间大小控制的。

第一步

客户端通过浏览器访问域名为 www.baidu.com (http://www.baidu.com) 的网站 ,发起查询该域名的 IP 地址的 DNS 请求。该请求发送到了本地 DNS 服务器上 。本地 DNS 服务器会首先查询它的缓存记录  ,如果缓存中有此条记录,就可以直接返回结果。如果没有,源码下载本地 DNS 服务器还要向 DNS 根服务器进行查询。

第二步

本地 DNS 服务器向根服务器发送 DNS 请求 ,请求域名为 www.baidu.com (http://www.baidu.com) 的 IP 地址。

第三步

根服务器经过查询 ,没有记录该域名及 IP 地址的对应关系 。但是会告诉本地 DNS 服务器 ,可以到域名服务器上继续查询  ,并给出域名服务器的地址(.com 服务器) 。

第四步

本地 DNS 服务器向 .com 服务器发送 DNS 请求,请求域名 www.baidu.com (http://www.baidu.com) 的 IP 地址 。

第五步

com 服务器收到请求后 ,亿华云不会直接返回域名和 IP 地址的对应关系,而是告诉本地DNS 服务器,该域名可以在 baidu.com 域名服务器上进行解析获取 IP 地址,并告诉 baidu.com 域名服务器的地址  。

第六步

本地 DNS 服务器向 baidu.com 域名服务器发送 DNS 请求 ,请求域名 www.baidu.com (http://www.baidu.com) 的 IP 地址 。

第七步

baidu.com 服务器收到请求后 ,在自己的缓存表中发现了该域名和 IP 地址的对应关系,并将 IP 地址返回给本地 DNS 服务器。

第八步

本地 DNS 服务器将获取到与域名对应的 IP 地址返回给客户端,并且将域名和 IP 地址的对应关系保存在缓存中 ,以备下次别的用户查询时使用。

总结

最后引用大佬的一张图做下总结 :

DNS域名解析过程

滇ICP备2023006006号-25