名字方便人记,地址帮助连接

你输入一个网站域名,设备通常先向DNS解析服务查询。得到相关地址记录后,浏览器才知道该尝试连接哪里,再继续进行后续网络通信。

这很像查通讯录:记得联系人名字,不代表已经知道电话号码。DNS帮助完成名称与记录的查询,但查到号码本身不等于电话已经接通。

一眼看懂 / 示意图

找地址,与取网页是两件事

找地址,与取网页是两件事浏览器持有网站域名DNS解析服务回答相关记录① 查询名字② 返回地址网站服务处理页面请求③ 请求网页④ 返回网页内容
  1. 01DNS

    回答名称对应的记录

  2. 02网站服务

    接收连接并提供页面

访问网站的简化示意;缓存命中时可省去部分查询。

先查到地址,再去取网页

假设你想打开一家图书馆的网站。第一件事像问路:“这个名字对应哪里?”DNS提供相关地址信息;第二件事才是浏览器联系那个地址,请求借阅页面。两次联系解决的不是同一个问题,DNS不会把整本书或网页正文一并送过来。

换个场景更容易分清:朋友搬了家,你的通讯录还记着旧地址,需要先更新记录;若地址完全正确,门却锁着,重新查十遍通讯录也不会把门打开。网站迁移、服务器停机和网络不通分别可能出现在不同环节。现实DNS还有分层查询和缓存等安排,图只把“找到服务”和“向服务取内容”这条边界画清。

并不是一台电脑保存所有答案

DNS采用分层、分布式结构。解析服务可以利用已有缓存;没有现成结果时,再按相应流程去获取记录。缓存使常见域名的查询不必每次从头做起。

记录也有有效时间,所以域名改指向后,有些地方可能暂时仍使用旧结果。具体多久受到记录设置、解析器与缓存状态影响,不是所有修改都统一等待固定小时数。

DNS正常,网站也可能打不开

查到了地址以后,网络连接、安全连接建立和网站服务本身仍可能出问题。DNS查询失败只是打不开网页的原因之一。

DNS还能查询邮件路由等记录,不只服务于网站地址。一个域名也可能对应多个地址;不能简单认为一个网站名永远绑定一台固定机器。