👀前端八股文之DNS的相关知识及解析过程

👀前端八股文之DNS的相关知识及解析过程前言 最近开启了日更学习系列,每天向优秀前端更近一步!知识点都会尽量用自己的话进行一个总结! ip地址 现在有的互联网使用的是IPV4协议的

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

最近开启了日更学习系列,每天向优秀前端更近一步!知识点都会尽量用自己的话进行一个总结!

ip地址

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址逻辑地址,以此来屏蔽物理地址的差异。

现在有的互联网使用的是IPV4协议的ip地址,一共有四段数字,每一段最大不超过255(8位二进制数,最大为2的八次方),例如咱们常用的本机地址127.0.0.1。

域名

域名是按照层级组成的,一个完整域名的倒数第一个”.”的右边部分称为顶级域名例如.com这类域名

顶级域名

顶级域名分为两类

  1. 国家顶级域名,例如中国的.cn,美国的.us。
  2. 国际顶级域名,例如工商企业的com,非盈利组织的.org

dns解析

dns解析就是将域名解析为ip地址,DNS( Domain Name System)是“域名系统”的英文缩写,平时咱们访问网站的时候使用的是域名访问,例如

www.baidu.com, 但是计算机在通讯的时候是不认得域名的,它只认得ip地址。互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。

下面我以咱们前端的思维,将dns解析比喻作前端发请求给后端获取想要的数据来分析DNS解析的过程。 第一个问题,浏览器怎么知道往哪个地址发送请求解析dns地址,这不是套娃么!其实我们的电脑里的网络设置是可以查到自己的ip地址的。

本机缓存

输入域名后,电脑首先看自己有没有对应域名的缓存,如果有的话缓存就直接用缓存里的ip访问,可以输入这个命令查看 ipconfig /displaydns,如果本机没有缓存就要去查询本机的hosts文件

hosts文件

hosts文件位于路径 “C:\Windows\System32\drivers\etc” 下,大家可以在自己的电脑打开看看,hosts文件可以加快域名解析对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,这样当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。

本地域名解析器

如果hosts文件中没有那我们就要访问本机的dns服务器,在windows10中可以在 查看网络属性 中查看自己电脑的 dns服务器,如下图

image.png

根域名服务器

本地dns服务器访问根域名服务器,根域名服务器根据你的域名是 .com 或是.cn返回对应的.com或.cn的顶级域名服务器地址。根服务器主要用来管理互联网的主目录,最早是IPV4,全球只有13台

1个为主根服务器在美国,由美国互联网机构Network Solutions运作。其余12个均为辅根服务器,其中9个在美国,2个在欧洲(位于英国和瑞典),1个在亚洲(位于日本)。

顶级域名服务器

接下来继续向顶级域名服务器发送请求,传的参数为咱们的域名,例如oil.com,顶级域名服务器就会解析出咱们的域名所对应的域名服务器。

域名服务器

这时候我们再把完整域名当做参数发送请求给我们的域名服务器,终于我们拿到了我们的ip地址,这时候我们的本地dns服务器会向浏览器返回ip地址,浏览器也可以向咱们自己得服务器发送请求了,在查询ip地址的过程中还会给咱们的本地dns服务器和浏览器添加缓存,下次一访问就不用去查询啦!

递归+迭代的查询方式

在dns查询的过程中,我们使用的是递归+迭代的查询方式。

举个例子,相信大家都有经历过考试,如果考试的时候监考老师发试卷是亲自从第一个同学往后发,直到自己走到最后一个同学那里发完最后一张,那就是迭代。

而递归就是老师将几张试卷给第一个同学,第一个同学拿了一张试卷后传给下一个同学,下一个同学再拿一张,知道传到最后一个同学那里,那么就是递归。

dns在本地dns服务器查询前使用的是递归,而本地dns服务器向顶级域名服务器,根域名服务器等就是用迭代的方式。

dns使用udp进行传输

dns使用udp进行传输是因为在访问某些冷门网站的时候,我们可能要走完上述的所有请求过程,如果使用TCP传输的话我们需要不断的去发起TCP连接,而udp则不需要,且咱们dns的解析请求非常的简单,就是我给你一个域名,你反我一个ip地址。

就例如咱们前端发请求给后端,发一次请求给后端拿十条数据和发十个请求一次拿一条数据时间对比,肯定是发一次请求的更短嘛。

dns解析记录类型

咱们在一些云服务平台买域名的时候就需要解析到咱们服务器的ip,在添加解析类型的时候我们可以看到有很多种类型,他们的具体区别我用腾讯云dnspod的一个解释的图片做展示

image.png

总结

dns的解析其实就像是我们的请求通过一个一个的服务器去传递,最终在服务器的帮助下我们从数据库中拿到了我们想要的数据,期间想要加速请求速度当然是使用轻量的数据包和一些缓存机制来加快请求速度,毕竟这只是咱们真正请求的第一步嘛!

我是新人oil,欢迎关注共同成长

今天的文章👀前端八股文之DNS的相关知识及解析过程分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/19707.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注