日常访问的网站,通常都不是通过IP地址进行访问,而是通过”域名“进行访问
本质上网络的传输,还是靠IP地址进行访问~
域名只是起到一个简化记忆的功能,实际进行网络传输,还是需要用IP,而DNS的作用非常简单,就是根据域名查出对应的IP地址,相当于是一个超级大的电话本。
那么DNS是如何把一个域名转换为IP的呢?
记录域名和IP地址之间的映射关系就可以进行相互转化
最开始,映射关系保存在本地文件中(hosts文件)。随着网站越来越多,hosts手动维护,成本维护很高,于是就把映射关系放在DNS服务器上
①本地从DNS服务器查询域名对应的IP
②DNS服务器返回一个对应的IP地址
③本地根据IP地址访问百度服务器
===========================
由于全世界有很多客户端,如果每次访问都需要访问DNS服务器,显然是不科学的
解决方案
①缓存:在首次访问后,将得到的IP保存到本地(由浏览器完成),之后访问就可以在缓存中获取IP~~
②分布式:DNS服务器并不是只有一台~
全球存在一些”根域名服务器“包含最高大全的域名解析数据,提供最原始的数据。各个网络运营商搭建自己的DNS服务器,分布在各个地方,根据根域名服务器进行同步,每个设备进行访问的时候,就近访问DNS服务器~~
==========================
DNS到底是怎么进行域名解析的呢?
首先我们要了解域名的结构,
①例如 www.baidu.com 这个域名,它对应的真实的域名应该是www.baidu.com. 真实的域名多了个点,末尾的这个点就被称为根域名,因为每个域名都有根域名,所以我们通常省略。
②根域名的下一级我们成为“顶级域名”,比如 .com .net;
③再下一级叫做“次级域名”,比如www.baidu.com 里面的baidu ,这一级的域名是用户可以进行注册和购买的。
④再下一级就叫做“主机名(host)”,也叫做“三级域名”,例如 www.baidu.com 里面的www
DNS解析域名的流程就是分级查询
这里我们还是用www.baidu.com进行举例
①先在本机的DNS里面进行查询,如果有,那直接返回,万事大吉
②本地DNS没有查到,就去根服务器去查,根服务器根据你的域名是属于com域,因此根服务器返回他所管理的com域中的DNS服务器的IP地址,意思就是给你这个地址,你去这去查
③本地的DNS接收到这个IP之后,又会向这个地址发送查询消息,
以此类推,就可以找到目标DNS服务器,从而找到对应的IP