通过浏览器解析 URL 并生成 HTTP 消息后,需要委托操作系统将消息发送给 Web 服务器。

但在发送之前,还有一项工作需要完成,那就是查询服务器域名对应的 IP 地址,因为委托操作系统发送消息时,必须提供通信对象的 IP 地址。

比如我们打电话的时候,必须要知道对方的电话号码,但由于电话号码难以记忆,所以通常我们会将对方电话号 + 姓名保存在通讯录里。

所以,有一种服务器就专门保存了 Web 服务器域名与 IP 的对应关系,它就是 DNS 服务器。

域名的层级关系

DNS 中的域名都是用句点来分隔的,比如 www.server.com,这里的句点代表了不同层次之间的界限

在域名中,越靠右的位置表示其层级越高

毕竟域名是外国人发明,所以思维和中国人相反,比如说一个城市地点的时候,外国喜欢从小到大的方式顺序说起(如 XX 街道 XX 区 XX 市 XX 省),而中国则喜欢从大到小的顺序(如 XX 省 XX 市 XX 区 XX 街道)。

实际上域名最后还有一个点,比如 www.server.com.,这个最后的一个点代表根域名。

也就是,. 根域是在最顶层,它的下一层就是 .com 顶级域,再下面是 server.com

所以域名的层级关系类似一个树状结构:

  • 根 DNS 服务器(.)
  • 顶级域 DNS 服务器(.com)
  • 权威 DNS 服务器(server.com)

根域的 DNS 服务器信息保存在互联网中所有的 DNS 服务器中。

这样一来,任何 DNS 服务器就都可以找到并访问根域 DNS 服务器了。

因此,客户端只要能够找到任意一台 DNS 服务器,就可以通过它找到根域 DNS 服务器,然后再一路顺藤摸瓜找到位于下层的某台目标 DNS 服务器。

域名解析的工作流程

  1. 客户端首先会发出一个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。
  2. 本地域名服务器收到客户端的请求后,如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大, 能告诉我 www.server.com 的 IP 地址吗?” 根域名服务器是最高层次的,它不直接用于域名解析,但能指明一条道路。
  3. 根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管理”,我给你 .com 顶级域名服务器地址给你,你去问问它吧。”
  4. 本地 DNS 收到顶级域名服务器的地址后,发起请求问“老二, 你能告诉我 www.server.com 的 IP 地址吗?”
  5. 顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。
  6. 本地 DNS 于是转向问权威 DNS 服务器:“老三,www.server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
  7. 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
  8. 本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。

至此,我们完成了 DNS 的解析过程。现在总结一下,整个过程我画成了一个图。

DNS 域名解析的过程蛮有意思的,整个过程就和我们日常生活中找人问路的过程类似,只指路不带路

那是不是每次解析域名都要经过那么多的步骤呢?

当然不是了,还有缓存这个东西的嘛。

浏览器会先看自身有没有对这个域名的缓存,如果有,就直接返回,如果没有,就去问操作系统,操作系统也会去看自己的缓存,如果有,就直接返回,如果没有,再去 hosts 文件看,也没有,才会去问「本地 DNS 服务器」。

面试题:DNS域名解析过程(超详细)相关推荐

  1. DNS域名解析过程(较详细版)

    在互联网世界你要去访问其他主机时,你总得知道那台主机的地址吧? 这时人们就发明了IP地址,每个IP地址与一台主机一一对应,通过IP地址就可以精确找到你需要访问的主机了,IP地址是使用4个0~255的数 ...

  2. 多张图带你彻底搞懂DNS域名解析过程

    目录 1.DNS 2.域名系统DNS 的作用 3.域名的层级关系 4.DNS域名解析过程 递归查询 迭代查询 5.高速缓存 6.DNS相关面试问题 1.DNS DNS(Domain Name Syst ...

  3. 深入分析Java Web技术内幕读书笔记(二)浅析DNS域名解析过程

    上一篇文章<浅析Web请求过程>讲述的是如何发起HTTP请求,对于请求发起过程中很重要的一个步骤--DNS解析过程的描述是一带而过,本篇文章将跟着DNS解析过程来分析域名是如何解析的. 一 ...

  4. DNS域名解析过程详解

    1. DNS概述 域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址. 2. 因特网的域名结构 由于因特网用户众多,所以命名时, ...

  5. [计算机网络]DNS域名解析过程

    DNS域名解析过程 dns 即是 domain name system 域名系统的缩写,将域名和 ip 的映射关系保存在一个分布式数据库中. 首先我们要明确一个观点.运行浏览器或者任何应用程序的主机和 ...

  6. DNS配置(超详细全过程,有图有解释),各个文件的含义也有解释

    DNS域名解析配置全过程(超详细,配置文件各个部分的含义都有解释) 后面也有配置http的过程: DNS所需要的软件包组为bind,端口号为53. ip地址 192.168.209.150(做实验根据 ...

  7. DNS域名解析过程+通俗理解

    1.背景 我们知道,在网络体系中,标识一个主机会用到IP地址,由一连串数字组成的,这并不利于人们的记忆.正如我们不会在线下去用电话号码去认对方,而是通过名字去想起对方一样的道理.因此,我们才通过域名( ...

  8. 计算机网络笔记:DNS域名解析过程

    基本概念 DNS是域名系统(Domain Name System)的缩写,也是TCP/IP网络中的一个协议.在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但计算机之间只能互 ...

  9. dns域名解析过程——从浏览器输入网址到页面显示的中间过程

    BEGIN: 一.域名 1.域名(domain name)也叫做网域,是英特网上的一个服务器或者一个网络系统的名字,域名具有唯一性,在传输数据时作为定位标识,全球没有重复的域名.域名的形式是由若干个字 ...

最新文章

  1. Proximal Algorithms 4 Algorithms
  2. “rm -rf”相当于Windows?
  3. 刚搭建的linux环境的基本优化以及优化脚本---菜鸟初写
  4. ios打包ipa的四种实用方法
  5. 计算机目录读取,从项目目录中读取SQL查询文件(Read SQL query file from project directory)...
  6. 红黑树 删除某节点后 旋转3次 举例
  7. TensorFlow 全网最全学习资料汇总之TensorFlow的技术应用
  8. python新手入门课_Python基础视频12集入门课程
  9. 理一理字节对齐的那些事
  10. 唯快不破:Web 应用的 13 个优化步骤
  11. +2流水线是怎样提高性能的,会遇到什么问题,解决方法是什么
  12. IOI2019团体总分前十排名:美国队夺魁,中国队第三,亚洲占六席
  13. [SHOI2008]堵塞的交通
  14. VBA编程之ODBC连接数据库
  15. python怎么降序输出结果_按降序打印Python
  16. ASAM让你减肥成为一种乐趣
  17. Mac IntelliJ IDEA 2020.1 闪退
  18. Python练习题018:a+aa+aaa+……
  19. 一把王者的时间带你拿捏计算机中整形提升的问题
  20. 时间序列预测(2):AI助力精准气象和海洋预测

热门文章

  1. 动漫的python语言代码大全_使用Python来看看动漫中的你
  2. ClickOnce 不支持请求执行级别“requireAdministrator”
  3. 西门子博图PLC学习笔记 (1)两个输出的的振荡电路
  4. arcgis10.2许可服务器状态:未运行,license无法启动解决办法
  5. MySQL 增删查询
  6. 洛谷4147 玉蟾宫
  7. 1.查询Student表中的所有记录的Sname、Ssex和Class列(sql语句练习)
  8. 汉字转换字母,可以取首字母,也可以取全拼
  9. 开发了一款基于 Flask 框架的在线电影网站系统(附 Python 源码)
  10. 为什么巨头要血拼「社区团购」?