前提
在我们利用浏览器发送请求的时候,尽管浏览器可以解析网址并生成http信息,但它本身并不具备将消息发送到网络中的功能,此时,我们就要利用操作系统来完成这图一任务,但委托操作系统发送消息的时候,必须要提供ip地址。但由于ip地址的难以记忆,所以提供了这样一个机制能够通过ip地址来查询名称,这个机制就是DNS
工作过程
DNS服务器中的所有信息都是按照域名以分层次的结构来保存的(用句点分隔,例如:www.baidu.com中的.com就表示一个域.baidu也表示一个域,www表示服务器名称),每个域的信息都是作为一个整体存在于DNS服务器中的,当我们要查找信息的时候,肯定不能一通胡找,因为世界上有数万台DNS服务器,这样肯定费时又费力,所以我们引申出了DNS的层级结构
客户端会首先访问一个最近的DNS服务器,假如最近的服务器并没有我们要找到的信息,那么这个DNS服务器就要转发给根域服务器,然后再根据域名来依次向下查找
例如我们要查找www.nikkeibp.co.jp这样一个网址,首先我们可以先找到jp这个域名,这个域名就分配在一个优先级较高的DNS服务器上,就是给日本这个国家,然后在找到co,co代表日本国内的公司分类,然后再找到nikkeibp,表示分配到一个指定的公司
缓存
这个缓存功能可以记住之前查询过的域名,如果要查询的域名和相关信息已经在缓存中,那么就可以直接返回响应,接下来的查询就可以从缓存的位置向下进行。
参考书籍:网络是怎样连接的