域名地址拆开理解就是域名加上网络地址。本质上是方便人记忆的名称,用来替代一长串难以背诵的IP数字。浏览器输入baidu.com,电脑实际建立连接的是39.156.66.10这类数字地址。域名相当于给IP套了一层便于记忆的名称,用文字就能访问网站。就算没有域名互联网也可以运行,但所有人都要记忆一长串IP,和背诵大量电话号码一样,实用性很差。
IP地址相当于网络内每台设备的门牌号,并行使用两套体系:IPv4和IPv6。IPv4由四段数字组成,示例192.168.1.1,总地址量大约43亿,地址池早已分配完毕。IPv6是八组十六进制字符,示例2001:0db8:85a3::8a2e:0370:7334,地址数量极其庞大。两套IP的作用一致,用来让网络数据包识别来源与目标设备。路由器只识别IP,不识别域名。发起网络请求时,电脑第一步会询问DNS服务器,查询baidu.com对应的IP,拿到结果之后,才会和目标服务器建立通信。

域名和IP并不是固定一对一绑定。一个域名可以对应多个IP,也就是负载均衡。大型网站通常会将同一个域名解析到一组服务器,用户请求根据调度策略分配到不同机器,单台服务器故障不会影响整体访问。反过来,单个IP也可以承载多个网站,即虚拟主机。服务器收到请求,读取请求头携带的域名,再返回对应站点内容。域名和IP属于多对多的对应关系,不是锁定配对。
域名阅读顺序从右往左。最右侧是顶级域,比如.com、.cn、.org,往左是二级域,也就是你注册的名称,例如baidu,组合后baidu.com就是完整域名。还可以继续向左添加子域名,像www.baidu.com、map.baidu.com,子域名可以指向不同服务器,也可以指向同一台。注册域名时,购买的只是baidu.com这个二级域名使用权,子域名的分配完全由自己掌控,注册商不会限制子域名数量和指向目标。
域名解析平时无感,但每次访问网站都会触发。输入域名,操作系统优先读取本地缓存,查看近期是否完成解析。缓存没有记录,就向配置的DNS服务器查询。如果DNS服务器没有对应记录,会逐层向上查询,从根域名服务器、顶级域服务器到权威域名服务器,最终获取IP返回给用户。整套流程一般仅几十毫秒。获取IP后系统会缓存一段时间,再次访问同一域名,不用重复查询。
域名和IP的绑定依靠DNS记录维护。最常用的A记录,把域名直接指向IPv4地址;AAAA记录对应IPv6地址。CNAME记录将一个域名指向另一个域名,例如www.example.com指向example.com,修改主域名IP,子域名会自动同步变更。MX记录管理邮件服务器,和网站访问无关。TXT记录多用于域名所有权验证或是反垃圾邮件配置。所有记录存储在DNS服务器,修改记录之后,各地DNS缓存刷新需要时间,快则几分钟,慢则数小时。
IP地址可以变更,域名保持不变,这是域名最实用的特性。家用宽带公网IP经常变动,今日是1.2.3.4,次日可能变成5.6.7.8。直接把IP发给他人,过段时间就失效。如果配置域名,搭配DDNS工具自动同步域名与当前IP,IP变更就更新解析记录,其他人访问域名不会察觉到后端IP变动。服务器迁移场景同理,更换机房、云服务商,IP必然改变,但域名不用更换,用户访问地址保持不变。
域名所有权和IP归属是两件独立的事。IP地址由运营商或者云厂商分配,用户仅拥有使用权,没有所有权。域名是付费注册,有效期内拥有管理权,可以自由转移、出售、续费。域名到期未续费,会进入赎回期,赎回期结束域名释放,其他人可以重新注册。域名属于租赁模式,不能永久买断。注册一般按年付费,可以一次性购买多年,最长通常不超过十年,到期前务必续费,不然运营已久的域名会被别人注册。
最后区分一个容易混淆的概念。域名本身不提供任何网络服务,仅仅是一个名称。访问网站真正提供服务的是IP对应的服务器。域名解析只是第一步,解析成功不等于网站可以打开,服务器需要正常运行、端口开放、程序正常响应。有时域名能解析出IP,但网站依旧打不开,问题不在域名,而是服务器端故障。排查的时候先确认解析结果,再检查服务器状态,不要混淆两者。