(八分钟带你了解)什么是DNS 解析流程

在dns解析流程前我们先要了解什么是dns

1、什么是dns

dns(domain name system)  是域名系统的英文缩写,是一种组织层域层次结构的计算机和网络服务命名的系统,用于TCP/IP网络。

简单的来说就是我们在浏览器输入一个URL地址时,浏览器要向这个URL 主机所对应的服务器发送请求,就知道这个服务器的ip,对于浏览器来说就是,dns的作用就是将主机名转换成ip地址。

2、dns解析流程

{dns解析流程}  简单的来说就是把域名翻译成ip地址。比如说www.baidu.com 把这个域名翻译成对应的ip 192.168.18.255。只是一个例子。

域名解析流程

在访问本地dns服务器之前会先(检查本地dns缓存和host文件解析)才会走上面图片的流程

浏览器缓存检查

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

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

如果浏览器缓存解析没有找到,操作系统也会有一个域名解析的过程,则浏览器会自动搜索操作系统的dns缓存是否有这个所对应的域名解析,如果没有有则解析到此结束。

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

第一步

客户端通过浏览器访问域名为(www.baidu.com)的网站,发起查询该ip地址的请求。首先通过dns缓存+host文件中查询有无解析结果。如果有返回结果。如果没有则要查询本地dns服务器。

第二部

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

第三部

本地dns服务器向根部服务器发送请求,请求域名为(www.baidu.com)的网站

第四部

经过查询,根服务器并没有有记录该域名的ip地址的对应关系,但是会告诉本地dns服务器,可以到顶级域域名服务器上进行查询,并给出服务器的地质(.com)

第五步

本地dns服务器向.com服务器发送dns请求,请求域名为www.baidu,com (baidu,com)的网站。

第六步

。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 地址的对应关系保存在缓存中,以备下次别的用户查询时使用。

总结

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

  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值