156

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

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

4

8 回答 8

143

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

由于 cookie 的点规则,如果您没有“www.” 那么您就不能像 *.example.com 那样设置两点 cookie 或跨子域 cookie。有两个相关的影响。

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

此外,您将无法设置跨子域 cookie。这似乎很明显,但这意味着允许经过身份验证的用户在您的子域之间移动更多的是技术挑战。

所以问自己一些问题。我设置 cookie 吗?我是否关心潜在的不必要的带宽支出?经过身份验证的用户会跨越子域吗?如果您真的担心给用户带来不便,您可以随时配置您的服务器以自动处理 www/no www 事情。

dropwwwyes-www

于 2009-01-28T07:25:13.823 回答
42

就在问了这个问题之后,我来到了no-www页面,上面写着:

...简而言之,使用 www 子域是多余的,而且沟通起来很耗时。没有它,互联网、媒体和社会都会变得更好。

于 2009-01-28T06:10:08.343 回答
34

从域名获取,同时使用 www.domainname.com 和普通的 domainname.com 否则你只是将你的流量丢给浏览器搜索引擎(DNS 错误)

实际上,令人惊讶的是有多少域,尤其是在前 100 名中,正确解析为 www.domainname.com 而不是 domainname.com

于 2009-01-28T06:19:56.420 回答
12

使用 www 子域的原因有很多!

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

你更愿意写/输入/说什么......“www。” (4 个字符)或“http://”(7 个字符)??

“万维网。” 是一种既定的简写方式,用于明确传达主题是 Web 地址,而不是另一个网络服务的 URL。

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

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

如果您想摆脱 www,为什么不将您的 HTTP 服务器也更改为使用不同的端口,TCP 端口 80 昨天太棒了。让我们将其更改为端口 1234,YAY 现在人们不得不说并输入“ http: //stackoverflow.com:1234 " (八位 tee tee pee 冒号斜杠 slash stackoverflow dot com 冒号一二三四) 但至少我们不必说“www”吧?

于 2009-03-08T21:20:01.407 回答
10

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

如果“拥有许多不同服务并且不想将裸域名专用于作为 Web 服务器的大型组织”场景不适用于您(实际上很少适用),您选择的地址是很大程度上是文化问题。您是否习惯于在广告材料上看到一个简单的“example.org”域,他们会立即将其识别为没有额外的“www”或“http://”的网址吗?例如,在日本,您会因为选择非 www 版本而获得有趣的外观。

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

于 2009-03-08T23:02:32.020 回答
8

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

1) 这个人是故意这样想要的

人们将 DNS 用于许多事情,而不仅仅是网络。他们可能需要一些其他对他们更重要的服务的主要 dns 名称。

2) 配置错误的 dns 服务器

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

3) 错误配置的网络服务器

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

4) 网站优化

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

5) 饼干

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

6) 客户端浏览器缓存

如果您向 www 发出请求而另一个没有请求,则 Web 浏览器可能不会缓存图像。这也可以通过永久移动的 http 状态码来解决。

于 2009-03-08T22:46:39.827 回答
6

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

关心和保护我们的用户不是我们的责任吗?正如大多数人所期望的那样,如果不为其编程,您将给他们带来不那么完美的体验。

对我来说,仅仅因为理论上不需要设置 DNS 条目,这似乎有点自大。携带 DNS 条目并通过重定向等没有开销,它们可以重定向到非 www dns 地址。

认真不要让潜在访问者出现不必要的“未找到站点”错误,从而损失宝贵的流量。

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

于 2009-01-28T09:14:59.517 回答
5

除了关于 cookie 的负载优化之外,使用子域还有一个与 DNS 相关的原因www。您不能对裸域使用CNAME 。yes-www.org 上它说:

当使用HerokuAkamai等提供商托管您的网站时,提供商希望能够更新 DNS 记录,以防需要将流量从故障服务器重定向到健康服务器。这是使用 DNS CNAME记录设置的,裸域不能有 CNAME 记录。
仅当您的站点变得足够大以至于需要使用此类服务​​进行高度冗余托管时,这才是一个问题。

于 2017-02-10T21:41:19.973 回答