社区编辑申请
注册/登录
八分钟带你读懂 DNS 域名解析流程
服务器 服务器产品
如果浏览器的缓存里没有找到对应的条目,操作系统也会有一个域名解析的过程,那么浏览器先搜索操作系统的 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域名解析过程


责任编辑:武晓燕 来源: 今日头条
相关推荐

2022-06-20 22:37:25

Linux操作系统命令

2022-06-15 11:02:40

网络安全运营

2022-07-01 05:47:19

PyCharm插件开发

2022-06-28 12:35:21

DockerPython

2022-06-12 15:15:32

Linux交换机

2022-06-28 09:34:24

可视化Python代码

2022-06-23 11:42:22

MySQL数据库

2022-07-01 14:25:27

机器学习人工智能工业4.0

2022-06-07 10:33:29

Camera组件鸿蒙

2022-06-13 14:18:39

电源管理子系统耗电量服务

2022-06-28 09:26:25

Python配置文件

2022-05-12 10:53:42

keepalivevrrp协议

2022-06-08 14:17:57

网络安全人工智能加密流量

2022-06-16 17:02:49

微软智能云混合云Azure

2022-07-01 15:46:20

网络安全数字化智能制造

2022-05-04 17:43:28

2022-06-17 10:24:57

IaC

2022-06-17 12:10:07

RPA机器人流程自动化

2022-05-20 14:22:23

区块链安全金融

2022-05-11 09:02:27

Python数据库Excel

同话题下的热门内容

联想毕巍:以终为始 用场景驱动思维助力智慧城市减碳如何用 Serveless 三分钟做好邀请函?什么是反向代理?Nginx反向代理如何配置?

编辑推荐

微服务的4个设计原则和19个解决方案微服务API级权限的技术架构高性能计算知识: 深度解析Lustre体系结构微服务架构中模块划分和服务识别Spring Cloud微服务实践
我收藏的内容
点赞
收藏

51CTO技术栈公众号