越来越多的网站域名不加www了,如twitter、微博等等(包括一些非社交网络)。这个问题我琢磨过很久,从三个方面分享一下我的心得。
1、不加 www 的裸域名好处主要是域名更加简短、容易记忆。
裸域名只能绑定 DNS 的 A 记录,不能绑定 CNAME 记录。也就是说你不能把裸域设定为另外域名的别名。很多时候这对管理不是很方便,特别是使用第三方托管服务的时候。如果第三方迁移服务器导致 IP 地址变更,你必须自己去更改 DNS 的 A 记录。
比如你的个人博客采用 Tumblr 的服务,如果使用裸域,你需要手动将你域名的 A 地址指向 Tumblr 指定的 IP 地址。Tumblr 如果迁移了机房,所有通过这种方式设定个人域名的用户都必须更改自己的 DNS 才能继续使用,否则服务就会中断。使用子域名的 CNAME 记录就相对简单很多,只需要将 www 子域名的 CNAME 字段指向 domains.tumblr.com 这个域名,之后如果 Tumblr 更改 IP 地址,他们只需要重新设置 domains.tumblr.com 这个域名的 A 记录,而无需要求每个用户去更改 DNS 记录。
这个技术上的限制导致许多大型的第三方服务商不支持使用裸域。典型的如 Google 的服务,现在都不能使用裸域。Google 的服务用户基数大,不得不采用 DNS 级别的分布式,使用到的 IP 地址太多,而且变动大。让用户绑定 A 记录的话不利于负载均衡,维护起来也是几乎不可能完成的任务。同理,大部分 CDN 也不支持裸域。
裸域的 cookie 的作用范围太大。假如知乎也采用裸域,那么知乎所有 cookie 的作用范围就包括zhihu.com 下的所有子域名。也就是说访问 foo.zhihu.com 和 bar.zhihu.com 的时候都会带上zhihu.com 裸域页面设置的 cookie。从安全、隐私、可扩展性、以及管理的角度而言,这对很多大型网站来说是不可接受的。
URL 的正则匹配,如果带 www 前缀的并且以 .com/.net/.org 结尾的,通常成功的机会要大很多。这个你会在许多文本编辑器里面遇到。如果 URL 不是 www 开头,并且也不是三大顶级域名结尾的,匹配成功的概率就要小很多。这是使用过程中有时候会让人很抓狂的点,重不重要全看你的用途和场合了。
另外一点非技术上的考量:用 www 子域名的好处体现在线下的环境,比如户外广告、报纸杂志、语音广播、语音电话等使用场合,www 这个前缀(不管是视觉的还是听觉的)能够很明确的提醒受众,这个信息片段是一个网站。有人会说加上 http:// 前缀也能解决这个问题,但现在随着以 Chrome/Safari 为首的浏览器都开始在地址栏里隐藏 http:// 协议前缀了,普通用户对于 http:// 这几个字符的理解会越来越模糊,所以如果是线下的话,保留 www 这个 visual/vocal cue 还是有一定意义的。