名字方便人记,地址帮助连接
你输入一个网站域名,设备通常先向DNS解析服务查询。得到相关地址记录后,浏览器才知道该尝试连接哪里,再继续进行后续网络通信。
这很像查通讯录:记得联系人名字,不代表已经知道电话号码。DNS帮助完成名称与记录的查询,但查到号码本身不等于电话已经接通。
找地址,与取网页是两件事
- 01DNS
回答名称对应的记录
- 02网站服务
接收连接并提供页面
访问网站的简化示意;缓存命中时可省去部分查询。
先查到地址,再去取网页
假设你想打开一家图书馆的网站。第一件事像问路:“这个名字对应哪里?”DNS提供相关地址信息;第二件事才是浏览器联系那个地址,请求借阅页面。两次联系解决的不是同一个问题,DNS不会把整本书或网页正文一并送过来。
换个场景更容易分清:朋友搬了家,你的通讯录还记着旧地址,需要先更新记录;若地址完全正确,门却锁着,重新查十遍通讯录也不会把门打开。网站迁移、服务器停机和网络不通分别可能出现在不同环节。现实DNS还有分层查询和缓存等安排,图只把“找到服务”和“向服务取内容”这条边界画清。
并不是一台电脑保存所有答案
DNS采用分层、分布式结构。解析服务可以利用已有缓存;没有现成结果时,再按相应流程去获取记录。缓存使常见域名的查询不必每次从头做起。
记录也有有效时间,所以域名改指向后,有些地方可能暂时仍使用旧结果。具体多久受到记录设置、解析器与缓存状态影响,不是所有修改都统一等待固定小时数。
DNS正常,网站也可能打不开
查到了地址以后,网络连接、安全连接建立和网站服务本身仍可能出问题。DNS查询失败只是打不开网页的原因之一。
DNS还能查询邮件路由等记录,不只服务于网站地址。一个域名也可能对应多个地址;不能简单认为一个网站名永远绑定一台固定机器。