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

在过去几年浏览互联网时,我看到越来越多的网页摆脱了“www”子域名。

有没有很好的理由使用或不使用“www”子域名?

有很多好的理由可以把它包括在内,其中最好的就是雅虎绩效最佳实践

由于cookies点规则,如果你没有“www”。 那么您不能在一个la * .example.com上设置双点Cookie或跨子域Cookie。 有两个相关的影响。

首先,这意味着您给予Cookie的任何用户都会将这些Cookie发送回与该域匹配的请求。 因此,即使您拥有子域名images.example.com,example.com Cookie也会始终以请求发送到该域名。 如果您将www.example.com设为权威名称,则会产生不存在的开销。 当然你可以使用CDN,但这取决于你的资源。

另外,您还没有设置跨子域cookie的function。 这似乎很明显,但是这意味着允许通过身份validation的用户在您的子域名之间移动更具有技术挑战性。

所以问问自己一些问题。 我是否设置cookie? 我是否在意潜在的不必要的带宽支出? 经过身份validation的用户是否会跨越子域名? 如果你真的担心不方便用户,你可以随时configuration你的服务器来自动照顾www / no www的事情。

请参阅no-www和yes-www 。

刚才问这个问题,我来到了无www的网页上说:

…简单地说,使用www子域是多余的和耗时的沟通。 没有它,互联网,媒体和社会都会好起来。

把它从一个domainer,使用www.domainname.com和正常的domainname.com,否则你只是把你的stream量远离浏览器的search引擎(DNS错误)

其实这是惊人的有多less域名,特别是前100名,正确解决www.domainname.com但不是domainname.com

有许多理由使用www子域!

在编写URL时,手写和input“www.stackoverflow.com”比使用“ http://stackoverflow.com ”更容易。 大多数文本编辑器,电子邮件客户端,文字处理器和所见即所得控件将自动识别上述两种情况并创build超链接。 打字只是“stackoverflow.com”将不会导致超链接,毕竟它只是一个域名..谁说有一个Web服务呢? 谁说对该域的引用是对其Web服务的引用?

你想写什么/打字/说..“www。” (4个字符)或“http://”(7个字符)?

“万维网。” 是明确传达主题是url的事实,而不是其他networking服务的URL的简明方式。

当口头传达一个url时,应该从上下文中清楚地知道它是一个url,所以说“www”是多余的。 应将服务器configuration为返回HTTP 301(永久移动)响应,将@ .stackoverflow.com(域的根)的所有请求转发到www子域。

根据我的经验,那些认为WWW应该被省略的人往往是不了解networking和互联网之间的区别的人,并且互换使用这些术语,就像他们是同义词。 networking只是许多networking服务之一。

如果你想摆脱www,为什么不改变你的HTTP服务器使用不同的端口,TCP端口80是sooo昨天..让我们改变到端口1234,YAY现在人们不得不说,并input“ http: “(八开三通小便结肠斜杠斜杠堆栈溢出点COM冒号一二三四),但至less我们不必说”www“呃?

包括或不包括它在内,没有任何客观的最佳策略。 “no-www.org”是一个愚蠢的旧教条,试图将自己作为一个明确的事实。

如果“拥有许多不同服务的大型组织并不想将裸露的域名奉献给networking服务器”的scheme不适用于您(实际上很less这样做),您select的地址是一个很大的文化问题。 您是否习惯于在广告材料上看到一个纯粹的“example.org”域名,是否会立即将其识别为url,而无需额外的“www”或“http://”? 例如,在日本,你会看到select非www的版本。

不pipe你select哪个,都是一致的。 使www和非www版本都可访问,但使其中一个明确,总是链接到该版本,并使其他redirect到它(永久,状态代码301)。 让两个主机名直接响应对search引擎优化是不利的,而服务于parsing到您的服务器的任何旧主机名都会让您打开DNS重新绑定攻击。

有几个原因,这里有一些:

1)这个人故意要这样做

人们使用DNS来做很多事情,而不仅仅是networking。 他们可能需要主DNS域名,对于更重要的其他服务。

2)configuration错误的DNS服务器

如果有人对您的dns服务器进行了www的查询,您的DNS服务器将需要parsing它。

3)configuration错误的Web服务器

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

4)网站优化

最好不要同时处理,而是转发永久移动的http状态码。 这样2个地址就不会竞争入站链路等级。

5)cookies

为了避免cookies不被浏览器发回。 这也可以通过永久移动的http状态码来解决。

6)客户端浏览器caching

如果向www发送请求并且不向另一个请求,则Web浏览器可能不会caching图像。 这也可以通过永久移动的http状态码来解决。

正如jdangel指出www是一些cookie的情况下的良好做法,但我相信有另一个原因使用www。

关心和保护我们的用户不是我们的责任。 正如大多数人所期望的那样,通过不编程,你会给他们一个不完美的体验。

对我来说,似乎有点傲慢,不build立一个DNS入口只是因为在理论上它不是必需的。 在携带DNS条目和通过redirect等方面没有任何开销,它们可以被redirect到一个非www的dns地址。

严重不要疏忽有价值的stream量,让你的潜在访客不必要的“网站未find”的错误。

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

除了关于cookie的加载优化之外,还有一个与使用www子域的DNS相关的原因。 你不能使用CNAME到裸域。 在是–www.org yes-www.org它说:

当使用诸如Heroku或Akamai的提供程序托pipe您的网站时,提供程序希望能够更新DNSlogging,以防需要将通信从发生故障的服务器redirect到健康的服务器。 这是使用DNS CNAMElogging设置的,裸域不能有CNAMElogging。 这只是一个问题,如果您的网站足够大,需要高度冗余托pipe这样的服务。