什么时候应该使用“ www”子域?


136

在过去的几年中,通过Internet浏览时,我看到越来越多的页面摆脱了“ www”子域。

是否有充分的理由使用或不使用“ www”子域?


10
没有人提到过Firefox(我认为是IE,也许是其他人)会自动添加www的事实。和.com(如果您在地址栏中输入“ stackoverflow”,然后按ctrl-enter)。即使您将www重定向到裸域,也至少需要一点理由来处理www。
bstpierre

@bstpierre-我经常使用它,有趣的是我看不到它提及得太多
Brady Moritz 2010年

2
@bstpierre,在Firefox上,当我在导航栏中按<enter>时,它没有添加“ www”。因此,Firefox似乎更喜欢假设您实际上是键入的内容,而不是推断出混淆的时代错误。因此,我看不到您的评论有何意义。
偏置

1
@bias:您是否尝试过该功能?从您的评论看,听起来好像不一样。它节省了几次按键操作-您无需键入“ .com”。正如boomhauer所提到的,它可能是人们经常使用的东西,并且它内置在浏览器中,因此即使您只重定向了它,这也是处理“ www。”的原因。在浏览器中,输入Ctrl-T(用于新选项卡),“ stackoverflow”,按Ctrl-Enter,您将导航到“ www.stackoverflow.com”,然后将您重定向到“ stackoverflow.com”。(类似地,Ctrl-Shift-Enter进入.org,而Shift-Enter进入.net,至少在FF3中。)
bstpierre11年

1
@bstpierre我使用vimperator,所以我不与导航栏进行交互,但是当我这样做时,只需按<Enter>键。另外,我的观点是,我认为大多数用户在使用Firefox时都按<Enter>键,而不是更复杂的和弦序列。我真的担心基于任意特性更改DNS是一个可怕的想法,并且会伤害用户。
偏置

Answers:


129

包含它的理由很多,其中最好的是: Yahoo Performance Best Practices

由于cookie的点规则,如果您没有“ www。”,那么您将无法在* .example.com中设置两点式Cookie或跨子域Cookie。有两个相关的影响。

首先,这意味着您要向其提供Cookie的任何用户都将使用与域匹配的请求将这些Cookie发送回去。因此,即使您有一个子域images.example.com,example.com Cookie也将始终与请求一起发送到该域。如果您将www.example.com设置为权威名称,那么这将产生开销。当然,您可以使用CDN,但这取决于您的资源。

另外,您也就无法设置跨子域Cookie。这似乎很明显,但这意味着允许经过身份验证的用户在您的子域之间移动是一项更大的技术挑战。

所以问自己一些问题。我会设置饼干吗?我是否担心可能不必要的带宽支出?经过身份验证的用户会跨子域吗?如果您确实担心给用户带来不便,则可以始终将服务器配置为自动处理www / no www。

参见dropwwwyes-www




12

使用www子域有很多原因!

编写URL时,手写和键入“ www.stackoverflow.com”比“ http://stackoverflow.com ” 更容易。大多数文本编辑器,电子邮件客户端,文字处理器和WYSIWYG控件都将自动识别上述两者并创建超链接。仅仅输入“ stackoverflow.com”将不会导致超链接,毕竟它只是一个域名。谁说那里有Web服务?谁说对那个域的引用就是对它的Web服务的引用?

您宁愿写/键入/说什么。“ www。” (4个字符)或“ http://”(7个字符)?

“万维网。” 是明确传达主题是Web地址而不是另一个网络服务的URL的事实的一种简便快捷方式。

口头交流网址时,应从上下文中清楚得知它是网址,因此说“ www”是多余的。服务器应配置为返回HTTP 301(永久移动)响应,将@ .stackoverflow.com(域的根)的所有请求转发到www子域。

根据我的经验,认为应该省略WWW的人往往是不了解Web和Internet之间差异的人,并且可以互换使用这些术语,就像它们是同义词一样。网络只是众多网络服务之一。

如果要摆脱www,为什么不将HTTP服务器也更改为使用其他端口,昨天的TCP端口80也是如此。让我们将其更改为端口1234,现在,人们不得不说并输入“ http: //stackoverflow.com:1234 “(八分之一tee tee小便冒号斜线堆栈溢出点com冒号一二三四),但至少我们不必说“ www”是吗?


3
您仍然可以使用www.example.com(“ www。”比“ http://”短),但随后重定向到“ example.com”。您应该同时聆听这两种情况,但是您所用的规范性内容并不重要(除了jdangel提到的cookie /子域问题)
10年

39
这些论点是荒谬的。说www.没有机制保障通过HTTP,端口80,有人会真正访问它,你只是认为他们会的。同样,如果您对某人说“ stackoverflow.com”,他们将以相同的方式访问它。HTTP是W3C标准协议,浏览器会添加,http://因为它们需要协议,并且假设缺少HTTP即可。http://www.不少于http://。Cookies是唯一可使用的有效手段www.,即使如此,也只有在您因太便宜而无法获得CDN或第二个域的情况下。
蒂姆(Tim)

5
什么?这是错误的推理。“万维网。” 浪费大家的时间。如果您的电子邮件程序未将常规域更改为超链接,则(1)手动设置超链接,或者(2)获取新的电子邮件客户端。
AriX

13
其实说“ www”。可能只有4个字符,但它是10个音节-比“ http://”的7个音节长。更讽刺的是,说“缩短的” www比说“万维网”长3倍
BritishDeveloper

2
使用“ www。”。链接的开头并没有将其设为绝对,而是相对的(请参阅jsfiddle.net/FQTSE)。然后您说“ www”。比“ http://”更短,这是事实,但是在大多数情况下,您可以只使用“ //”,它更短并且使url绝对。
Oriol

10

包含或不包含它并没有巨大的优势,也没有一种客观上最好的策略。“ no-www.org”是一堆愚蠢的旧教条,试图将自己展示为确定的事实。

如果“大型组织提供许多不同的服务,并且不想将裸域名专用于Web服务器”的情况对您不适用(实际上很少这样做),那么您选择的地址是在很大程度上是文化问题。您是否会习惯于人们看到广告材料上写着一个“ example.org”的裸域,他们会立即将其识别为网址,而无需额外的“ www”或“ http://”吗?例如,在日本,选择非www版本会看起来很有趣。

不过,无论您选择哪种方式,都要保持一致。使www版本和非www版本都可以访问,但使其中一个明确,始终链接到该版本,并使另一个重定向到该版本(永久,状态码301)。使两个主机名直接响应对SEO不利,并且提供解析到服务器的任何旧主机名都会使您容易受到DNS重新绑定攻击。


8

原因有以下几种:

1)这个人故意这样想

人们将DNS用于很多方面,而不仅仅是Web。他们可能需要其他更重要的其他服务的主要DNS名称。

2)配置错误的DNS服务器

如果有人在您的dns服务器上查找www,则您的DNS服务器将需要解决它。

3)配置错误的Web服务器

Web服务器可以承载许多不同的网站。它通过Host标头区分您想要的站点。您需要指定要用于网站的主机名。

4)网站优化

最好不要同时处理这两种情况,而要转发带有永久的http状态代码的转发。这样,这两个地址就不会竞争入站链接排名。

5)饼干

为了避免Cookie未被浏览器发回的问题。这也可以通过移动的永久http状态代码解决。

6)客户端浏览器缓存

如果您向www和其他网站提出请求,则Web浏览器可能不会缓存图像。这也可以通过移动的永久http状态代码解决。


6

正如jdangel指出,在某些Cookie情况下,www是一种很好的做法,但我相信还有另一个使用www的理由。

照顾和保护用户不是我们的责任。正如大多数人所期望的,www,如果不进行编程,就会给他们带来不完美的体验。

在我看来,仅出于理论上不需要设置DNS条目似乎有点自大。携带DNS条目和通过重定向等都没有开销,可以将它们重定向到非www dns地址。

请勿通过使潜在访问者出现不必要的“找不到网站”错误来严重浪费宝贵的流量。

此外,在仅Windows的网络中,您可能可以设置Windows DNS服务器来避免以下问题,但是我认为您不能在mac和Windows的混合环境中使用。如果Mac对Windows进行DNS查询,DNS mydomain.com将返回所有可用的名称服务器,而不是Web服务器。因此,如果在浏览器中键入mydomain.com,将使浏览器查询名称服务器而不是网络服务器,在这种情况下,您需要一个子域(例如www.mydomain.com)来指向特定的网络服务器。


4

除了有关cookie的负载优化外,还有使用www子域的DNS相关原因。您不能对裸域使用CNAME。在yes-www.org yes-www.org上显示:

当使用诸如Heroku或Akamai之类的提供程序托管您的网站时,该提供程序希望能够更新DNS记录,以防其需要将流量从发生故障的服务器重定向到运行正常的服务器。这是使用DNS CNAME记录设置的,并且裸域不能具有CNAME记录。仅当您的站点足够大以要求使用此类服务​​进行高度冗余的托管时,这才是问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.