我头一次接触DNS的时候还以为它是某个网络游戏的缩写呢,毕竟地下城与勇士的缩写是DNF,穿越火线的缩写是CF
但是后面接触电脑了才发现这是计算机领域的一个专用名词,跟我一起了解一下吧!
我们步入主题,什么是DNS?(Domain Name System/Domain Name Service)
中文翻译过来就是域名系统,简单理解就是域名和IP的映射关系表,类似于我们手机里的联系人通讯录啥的
是姓名和号码的对应关系表,比如说我们给小王发短信,是通过他的号码来实现操作的
我们在访问网站的时候实际上计算机到头来链接的也是某一个具体IP的主机
说白了,当我们联系某个人的时候我们需要通讯录来记录他的号码和姓名
访问网站的时候我们也需要DNS记录域名和对应IP的映射关系
但是我们通讯录的记录数量是有限的,撑死了也就上千个,因此你在手机上就可以保存
但是域名的数量上限就极高了,截至2022年末,全球的域名总量接近3.5亿,这甚至比一些大型国家的人口都要多了
你一分钟访问一个网站也得花费五六百年,而且域名的数量会不断地增加
经过以上的一些概况我们就知道,如此庞大的规模是无法在本地保存的,且这些域名和IP的映射关系也是动态变化的
这个时候就需要一套系统来支撑了,也就是我们今天说的DNS系统
DNS的通俗理解和运行原理
以下内容为了方便理解将会把“DNS字样”换成“服务器”
当我们在浏览器输入某一个域名,访问的时候本地服务器会首先查询它的缓存记录,如果缓存中有记录的话就可以直接返回结果
如果没有的话,本地服务器还要向根服务器进行查询
服务器如果没有具体的域名和IP的对应关系,就会告诉本地服务器到域服务器上继续查询
域服务器收到请求之后也不会直接返回域名和IP的对应关系,而是告诉本地服务器,你的域名授权服务器的地址
然后本地服务器向授权服务器发出请求,这个时候就能收到一个域名和IP地址的对应关系
本地服务器不仅要把IP地址返回给用户,还要把这个对应关系保存在缓存中,以备下一次用户查询时快速打开