IP 地址和域名,类比来看,IP类似电话号码,域名就是通讯录里备注的名字。保存“张三”这个备注,拨号时手机自动匹配号码。输入网址example.com,设备后台请求DNS,获取域名对应的IP地址,拿到IP之后,才能建立网络通信。
IP地址是联网设备在网络中的标识,相当于门牌号。由一串数字组成,IPv4格式类似192.168.1.1或者93.184.216.34。IPv6地址更长,冒号分隔,例如2001:0db8:85a3::8a2e:0370:7334。手机、电脑、服务器,每一台联网设备至少拥有一个IP,不然数据包无法确定传输目标。公网IP全球唯一,内网IP仅局域网内部有效,数据包离开路由器之后无法识别内网地址。

域名是方便人类阅读记忆的字符组合。baidu.com、taobao.com、qq.com,阅读顺序从右向左,最右侧是顶级域,.com、.cn、.org都属于这类。向左依次是二级域、子域。域名本身不是网络地址,只是字符名称,注册商出售域名使用权,使用者可以在DNS中将域名指向指定IP。
两者之间依靠DNS完成翻译。输入域名,操作系统先查询本地缓存,没有记录就请求递归解析器,解析器逐层查询根服务器、顶级域服务器、权威服务器,最终获取目标IP。整个过程耗时几十毫秒,使用者感知不到。拿到IP之后,浏览器向该IP发起HTTP请求,拉取网页内容。
单个域名可以绑定多个IP。大型网站普遍采用这种方案,www.example.com解析后返回十几台服务器IP,用户请求分发到不同服务器,实现负载均衡。反过来,同一个IP也可以承载多个域名。虚拟主机场景,数百个网站部署在同一台服务器,共用单个IP,依靠HTTP请求头内的Host字段区分不同站点。
域名最大价值就是便于记忆。记住google.com远比记住142.250.72.14简单。IP存在变动可能,服务器更换机房、线路调整都会改变IP,域名不用改动,仅修改DNS记录,用户访问不受影响,依旧输入同一个域名。
没有域名,互联网依旧可以运行,但只有技术人员方便使用。没有IP,网络通信完全无法实现,数据包只识别数字地址,无法识别域名文字。域名面向人,IP面向机器,DNS充当中间翻译。原理大致就是这样。