不加www更好看更简洁
我得承认:“example.com”更短,读起来更容易。你试试,是不是没法一口气读完“www”吧?而且,不加www后,名称占用的空间也更小。因此,人们开始省略“www”、直接把根域名作为主机名,这也是可以理解的了。
那为什么还在纠结加不加www呢?
为什么我们还在争论这个问题?人们不能喜欢什么就用什么吗?
当然可以。
但是,假如你是网站管理员,你在决定前可能会想深思熟虑一番,因为在使用网络上的大部分东西前,比如cookie,我们都没有好好思考过。
Cookie会被发送到所有的子域
在主机名下设置的 cookie也会被发送到所有的子域,也就是说,如果在“example.com”的网站设置一个cookie,浏览器在浏览“www.example.com”时也会发送这个 cookie。
这听起来是件好事,因为反正它们是同一个网站,对吧?但是,这个cookie也会被发送到“cdn.example.com”、“email.example.com”、“intranet.example.com”等等任何包含“.example.com”的第三方服务网站。很多第三方服务网站都是这样共享你的cookie。
而对于在“www.example.com”下设置的cookie,是不会发送到以上这些网站的。你的浏览器能够识别出它们不是“子服务”,而是完全不同的服务,因此不会发送cookie。
不必要的cookie会影响网页运行速度
每访问一次网页服务器,浏览器都会发送一次HTTP 和cookie。因此,如果你的cookie设在根域名“example.com”下,那么每当你访问 “email.example.com”或者是“intranet.example.com”的时候,浏览器都会发送cookie。这会导致网页的运行速度下降,影响用户体验 。
第三方可以读取cookie
所以,如果你的主机名是根域名(“example.com”),并且可以登录到内容管理系统(CMS),那在你登录期间,CMS会给你的浏览器发送一个cookie。接着,如果你访问“someinternalservice.example.com”(内部服务),该网站的管理员就可以访问并利用这个cookie,以你的名义登进CMS里的“example.com”。
类似的,你访问“email.example.com”(邮箱)的时候,你的CDN服务商也可以登进你的邮件服务,加载出大量含有“example.com”的网站,比如“static.example.com”等等。
如果你担心网站上内容的安全,那就应该使用有www前缀的主机名。 如果这都不能让你决定到底要不要前缀,那我就无话可说了。HTTPS和双因素认证(Two-factor authentication,2FA)都不能确保你网站的安全,尽管2FA通常很有用,不过IP限制这样的安全措施能起到一定帮助。
子域的cookie可以在全域分享
如果你在例如“sso.example.com”这样的子域上有一项服务,RFC 6265使你能够在子域上设置一个cookie,并和“example.com”或“www.example.com”共享。因此,使用有前缀的主机名能使操作更加灵活。










