域名解析(DNS Resolution), 它是那种把人类读得懂的域名, 比如 www.example.com, 转换成计算机能识得的IP地址, 比如 203.0.113.50的过程。

这一点非常重要, 它是互联网基础设施里, 最核心的环节之一, 因为没有域名解析的话, 用户要访问网站, 就得每次手动输入一串数字IP地址起来。

为什么需要域名解析?

人们让各个计算机依靠IP地址去实现互相通信, 不过呢, 这种IP地址(像192.168.1.1这样的)是很难让人记住的, 也不容易传播开去。域名系统DNS扮演了互联网电话簿这样一个角色什么是域名解析青岛高世电气科技有限公司,它会把容易记忆的域名映射到对应的IP地址上面去。

当你是在浏览器的地址栏里面输入网址, 并且按下回车键的时候, 这其实背后就触发了一次或者多次的域名解析请求, 这样的话用户就不需要去关心这些背后的IP细节了。

域名解析的完整过程(三步)

第一步做的是本地查询, 设备首先检查本地的DNS缓存, 然后再去检查主机文件, 如果这些地方都没有找到结果, 就会向本地DNS服务器发起查询请求, 这个服务器通常是由宽带运营商提供的。

第二步, 递归与迭代查询: 如果本地DNS服务器没有找到这条记录的缓存内容, 它就会先去问根域名服务器, 接着去问顶级域服务器(比如说com这一类顶级域的权威名称服务器), 然后再去问负责这个域名的权威域名服务器, 这样一步一步按照顺序查下去, 直到最后拿到这个域名对应的IP地址为止。

第三步是返回与连接, 权威服务器将解析出来的结果逐级地返回给本地DNS服务器, 然后呢, 再把这个结果交给到你的设备上, 等你的设备拿到了IP地址之后, 会通过TCP协议以及HTTP或HTTPS协议去和那个目标的服务器建立连接的, 也就是开始加载页面了, 整个这一套流程下来, 花费的时间通常也就只是在几十毫秒到几百毫秒的范围之内。

常见DNS记录类型

A记录指的是, 要把一个域名去指向到一个IPv4地址上面, 举例来说吧, 就是像m.dcqzss.cn这样的域名, 它会去指向1.2.3.4这个IP地址。

AAAA这个记录类型, 它的作用是, 把域名给指向到一个IPv6地址去。

域名解析是什么意思?从输入网址到页面打开,背后到底发生了什么(图1)

CNAME这条记录的意思是把一个域名的别名指向到另一个已经能够正常被解析的域名上面, 就拿shop.example.com来当例子, 它会指向main.example.com。

MX记录的意思是, 这个记录是用来指定邮件接收服务器的地址的, 而这个服务器地址是和该域名相关的。

TXT记录, 是用来存放那些像验证域名的身份时要用到的信息之类的文本数据的, 还有SPF反垃圾邮件策略等等这类东西。

就以实际运营的情况来做一个举例说明一下, 当我们的网站把移动端页面部署到了 m.dcqzss.cn 这个地址上的时候, 运维人员就需要去到DNS的管理后台那里, 专门为 m.dcqzss.cn 这个子域名添加一条A记录或者是CNAME记录, 这样一来, 就能让系统把这个请求正确地指向到对应的服务器IP地址上面去。

等到这个配置操作生效之后什么是域名解析,用户就能够直接在浏览器里面直接输入 m.dcqzss.cn , 然后就可以正常地访问到移动端页面了, 这样做的一个好处是让大家完全不用去费脑子记忆那些底层的服务器IP地址。

常见疑问

修改了DNS记录, 到底要等多久才能生效? 这主要取决于TTL(Time To Live)这个值。默认情况下, 通常会被设为3600秒, 相当于1个小时。在这1个小时里, 各级的DNS缓存会慢慢地进行更新。所以, 实际生效的时间长短, 会根据不同的缓存策略而有所不同。

域名解析和网页打开是同一回事吗? 不是, 解析只负责找到服务器在哪, 但是打开页面还需要进行TCP握手, 然后发送HTTP请求, 最后再进行页面渲染等一系列后续步骤, 这属于不同的阶段。

想要知道某个特定域名到底解析成了什么结果, 你不妨去试试用系统里本来就已经存在的那些工具, 比方说 ping 命令或者 nslookup 命令, 再或者 dig 命令也行, 你也可以选择不费劲, 直接去找那些在线的 DNS 查询服务平台, 借助它们来迅速地把目前正在生效的那个 IP 地址记录给摸清楚。

域名解析这个东西, 其实是把人和机器给连起来的一座桥。你要是能够搞清楚这个机制到底是咋回事儿的, 那么在遇到了那种网站突然打不开了、或者访问速度变得特别慢之类的问题的时候, 就有办法去快速地进行一个判断了。

你就能够知道这个故障它是不是出在DNS那个环节上面去了, 这样一来, 你就能够更加高效地去找到问题的所在并且把它给解决掉了。