掘金地址
结合 小林 coding
当键入网址后,到网页显示,其间发生了什么
DNS 服务器
专门保存了
Web
服务器域名与IP
的对应关系
域名用“.”分隔成多个单词,级别从左到右逐级升高,最右边的被称为“顶级域名”
DNS 服务器是一个分布式的查询域名系统 , 为了提高查询效率 外围有多级缓存。
域名解析
含义 :由于 HTTP 协议通常跑在 TCP/IP协议栈之上,使用TCP协议进行可靠传输,使用 IP 实现寻址和路由,所以要将 域名 转换为 对应的真实的 通信 IP 地址。
通俗理解 :电话簿 --> 给小明打电话,通过查找小明的名字得知小明电话号码,小明(域名) 电话号码(IP地址)。
域名的 形式
域名 由 .
进行分割,从右到左级别依次降低, 最右边 顶级域名,然后是二级域名
顶级域名 : 例如 .com(表示商业公司) .cn(代表国家) .edu(教育机构的)
域名层次结构图(来源于 小林 coding)
例如 : 访问 www.server.com解释 :
- 根域DNS服务器:管理顶级域名服务器,返回“com”“net”“cn”等顶级域名服务器的 IP 地址;
- 顶级域DNS服务器:管理各自域名下的权威域名服务器,比如 com 顶级域名服务器可以返回 server.com 域名服务器的 IP 地址;
- 权威域DNS服务器:管理自己域名下的主机的 IP 地址 ,例如 server.com 返回的是 www.server.com 的 IP地址。
访问 www.server.com 图解 图片来自小林coding
DNS 服务器的多级缓存
当全球很多人同时访问 DNS 这个系统时,即使不瘫痪,也会造成访问速度过慢,为了解决这个问题,引入了缓存系统。
浏览器会缓存访问过的域名缓存。 如果有 , 直接返回该域名的对应的IP地址。
其次 , 操作系统也会对 DNS 的解析结果进行缓存,可以在 操作系统缓存中拿到 域名解析的IP地址。
然后 操作系统有一个 host 文件 来存储 主机 的映射关系,在操作系统里找不到记录,就会到 host 文件中找到这个记录,如果host文件中没有,才会访问本地 DNS 服务器。
DNS 解析过程
由上分析可知 : 输入一个网址时 : DNS 解析过程为: 依次查看 浏览器缓存 、 操作系统缓存 、 host 文件的映射记录,DNS 服务器 (非权威的dns服务器 —> 根域名服务器 —> 顶级域名服务器 —> 权威域名服务器。)