www 不是装饰,它是主域下的一条记录
输入一个带 www 的地址,很多人默认它和去掉 www 的版本是同一个地方。在浏览器里这常常成立。但成立的原因是网站管理员把两边都配好了,不是 www 本身有什么黏合作用。
在 DNS 里,吃瓜.com 是主域,www.吃瓜.com 是它下面的一台主机,一条独立的记录。这条记录可以指向和主域完全相同的地址,也可以指向另一台机器、另一个缓存节点,甚至根本不存在。三种情况都有实际存在的理由,没有哪一种是唯一正确的做法。
所以当有人问 www.吃瓜.com 能不能打开,这个疑问其实被拆成了两半:这条记录存在吗;存在的话,它指向的地方有没有把网站跑起来。第一半查一次 DNS 就有答案,第二半要真的发出一次请求才知道。把这两半混在一起谈,结论一定是糊的。
中文域名要先转码,www 跟着一起转
中文域名在真正发出查询之前,要先经过一次转换。浏览器和操作系统按 IDNA 规则,把“吃瓜”这样的非 ASCII 字符编码成以 xn-- 开头的 ASCII 串,DNS 只认后面这个形态。你看到的是中文,网络上跑的是转码结果。
这一步解释了两件事。
一是为什么有些地方显示成 xn-- 开头,那不是出错,是同一个名字的另一种写法。二是为什么那三个 w 一个都没少:它本来就是 ASCII 字符,转码不影响它,转完照样排在前面,仍然是独立的一条记录,不会因为前面有中文就自动跟裸域合并。
顺带提一句证书。给中文域名签发的证书,SAN 字段里写的是转码后的名字,浏览器校验证书时比较的也是转码结果。名字对不上就报警告,跟“吃瓜”这两个字长什么样没关系。
查一次记录,比反复刷新有用
确认两个名字的关系,用不着猜。电脑上开命令行,nslookup 或 dig 各查一次:一次查吃瓜.com,一次查 www.吃瓜.com。两个名字在 DNS 眼里是两条互不覆盖的记录,必须分开问。
结果的差别有讲究。返回 NXDOMAIN,意思是这条名字不存在,多数情况是没配 www 那条,跟网站本身是否正常是两码事。返回了地址却打不开页面,问题就落到下一层:服务没监听、端口不对、证书不匹配,都可能。两种失败看着像,原因完全不同,混在一起判断就会得出错的结论。
还有一个容易漏的点:查的时候要按转码后的名字查,或者让工具自己转。有些命令行工具对非 ASCII 输入的处理并不一致,直接粘贴中文可能什么也查不到,于是被误判成“域名不存在”。换成 xn-- 形式再查一遍,能排除掉工具的干扰。
能确认的到此为止:记录在不在、指向哪里。查不出来的是“这个站是谁的”——www 那条记录不携带任何归属信息,任何拿到主域管理权限的人都能随手加一条。
手上只有这个写法时,先试哪个
如果你手上只有一个别人转述的写法,最省事的办法是两个都试一遍,谁有反应用谁。裸域能开、带 www 的不能开,说明对方给的写法多余,不是网站出了问题。
两个都能开,还得看内容是否一致。指向同一台服务器、同一个站点,页面应当完全一样;如果标题、内容、跳转地址有差别,那就是两处部署,别默认它们是一回事。这种情况在正经站点上也会出现,比如主站和某个专题页共用同一个主域。
这里有个适用条件要说清:以上判断都建立在你亲手查、亲手打开的前提下。别人截图说“能打开”,那只是他那条网络路径上的结果。DNS 有缓存,不同地区、不同运营商解析到的地址可能不同,一次成功不等于处处成功。不是让你疑神疑鬼,是别把单次观察当成全局事实。
输哪个、信哪个,取决于你想确认的是“能不能访问”还是“这是谁的地盘”。前者试一次就够,后者试一百次也问不出来。