游客发表
你打开浏览器,域名敲下“www.baidu.com”,区别页面秒开。域名但如果你把域名换成“110.242.68.66”,区别一样能进百度。域名这俩东西指向的区别是同一台服务器,可为什么我们平时只用域名,域名几乎不碰IP?区别
域名是给人看的,IP是域名给机器用的。就这么简单,区别但背后的域名门道值得掰扯。
IP地址本质上是区别一串数字,IPv4格式下是域名32位,写成四组十进制数,区别比如192.168.1.1。域名每台联网设备至少有一个IP,数据包在网络里找路,靠的就是这串数字。路由器不认字母,只认数字。你输入域名,电脑第一步就是去问DNS服务器:“这个域名对应哪个IP?”拿到答案后,才真正开始通信。
域名的作用是替换掉那串难记的数字。想象一下,你要访问知乎,得记住103.41.167.234——谁能记住?但“zhihu.com”看一眼就忘不掉。域名是1990年代前后大规模普及的,核心动机就是降低使用门槛。没有域名,互联网可能至今还是极客圈子里的玩具。
但域名和IP不是一对一的关系。一个IP可以绑定多个域名,这叫虚拟主机。一台服务器上跑着几百个网站,共享同一个IP,靠HTTP请求头里的Host字段区分。反过来,一个域名也可以对应多个IP,比如大型网站做负载均衡,把流量分散到不同机房。百度的IP就不止一个,你在不同地区ping百度,返回的地址可能完全不同。
还有个容易忽略的点:域名有“所有权”概念,IP没有。你注册一个域名,比如“example.com”,只要按时续费,它就归你使用。但IP地址是分配给网络运营商的,你再怎么用,也只是“租用”。中国电信拿到一大块IP段,再分给企业用户,企业换宽带商,IP就变了。域名可以跟着你走,IP不行。
DNS解析过程也很有意思。你输入域名,电脑先查本地hosts文件,再看系统缓存,再问本地DNS服务器。本地DNS不知道,就一层层往上问,根域名服务器、顶级域名服务器、权威域名服务器。整个过程通常几百毫秒,你根本感觉不到。但DNS一旦出问题,域名就“失灵”了。2021年Facebook全球宕机,就是因为BGP路由出了问题,连带DNS解析失败,用户连IP都找不到,整个服务瘫痪了几个小时。
有人觉得IP地址更“底层”,更可靠。理论上没错,直接访问IP可以绕过DNS。但现实是,很多网站用CDN,IP是动态的,你硬编码一个IP,过几天可能就失效了。而且HTTPS证书通常绑定域名,直接用IP访问会报证书错误。浏览器地址栏会弹红警告,普通用户根本不敢继续。
从运维角度看,换IP比换域名麻烦得多。网站迁移服务器,IP变了,但域名不变,用户无感知。只要改一下DNS记录,等TTL过期,流量就切过去了。如果让用户记IP,每次迁移都得通知所有人,根本不现实。
IPv6的普及让IP地址变得更长,比如“2400:cb00:2048:1::c629:d7a2”。这种长度,人脑基本不可能记住。域名的价值反而更大了。未来物联网设备爆发,每个灯泡、每个传感器都有IP,但用户只会通过域名或App去控制,没人会去背IPv6地址。
说回开头那个例子。你输入“110.242.68.66”能进百度,但浏览器可能提示“不安全”,因为证书是颁给“*.baidu.com”的。而且你没法用这个IP访问百度网盘、百度贴吧,它们可能在同一IP的不同端口,或者根本不在同一台机器上。域名是一套命名体系,IP是一套寻址体系。两者配合,才撑起了今天的互联网。
所以下次看到“域名”和“IP”,别觉得它们是可以互换的。一个负责让人记住,一个负责让机器找到。分工不同,缺一不可。
友情链接