【问题标题】:When should one use a 'www' subdomain?什么时候应该使用“www”子域?
【发布时间】:2010-10-03 22:49:35
【问题描述】:

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

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

【问题讨论】:

  • 没有人提到Firefox(我认为是IE,也许还有其他)会自动添加www。如果您在地址栏中键入“stackoverflow”并按 ctrl-enter,则为 .com。至少处理 www 的另一个小理由,即使您将其重定向到裸域。
  • @bstpierre - 我经常使用这个,有趣的是我没有看到它被提及很多
  • @bstpierre,在 Firefox 上,当我在导航栏中按 时,它没有添加“www”。所以看起来 Firefox 更喜欢假设您实际上是指您输入的内容,而不是推断出混乱的时代错误。因此,我看不出您的评论有何相关性。
  • @bias:你试过这个功能吗?从您的评论来看,听起来不像。它节省了几次击键——您不必键入“.com”。正如boomhauer 所提到的,它是人们可能经常使用的东西,并且它内置在浏览器中,所以它是处理“www.”的理由,即使你只是重定向它。 IE。在您的浏览器中,键入 Ctrl-T(用于新选项卡)、“stackoverflow”、Ctrl-Enter,您将导航到“www.stackoverflow.com”,然后您将被重定向到“stackoverflow.com”。 (类似地,Ctrl-Shift-Enter 转到 .org,Shift-Enter 转到 .net,至少在 FF3 中是这样。)
  • @bstpierre 我使用 vimperator,所以我不与导航栏交互,但当我这样做时,我只需按 。另外,我的观点是,我认为大多数用户在使用 firefox 时按 而不是更复杂的和弦序列。我真的很担心根据任意特性更改 DNS 是一个可怕的想法,会伤害用户。

标签: subdomain


【解决方案1】:

有很多充分的理由将其包含在内,其中最好的理由如下: 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

【讨论】:

    【解决方案2】:

    问完这个问题后,我来到no-www 页面,上面写着:

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

    【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    【解决方案4】:

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

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

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

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

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

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

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

    【讨论】:

    • 您仍然可以使用www.example.com(“www.”比“http://”短),然后重定向到“example.com”。你应该听两个,但你作为规范使用的东西并不重要(除了 jdangel 提到的 cookie/子域问题)
    • 那些论点很荒谬。说www. 并不能保证有人会通过80 端口通过HTTP 访问它,你只是假设他们会。同样,如果您对某人说“stackoverflow.com”,他们将以相同的方式访问它。 HTTP 是 W3C 标准协议,浏览器会添加http://,因为它们需要 协议,如果缺少它就假设 HTTP。 http://www. 不短于 http://。 Cookie 是 唯一 使用 www. 的有效理由,即便如此,只有在您获得 CDN 或第二个域的成本太低时。
    • 什么?这是一个糟糕的推理。 “万维网。”是在浪费大家的时间。如果您的电子邮件程序没有将常规域更改为超链接 (1) 手动创建超链接或 (2) 获取新的电子邮件客户端。
    • 其实就是说“www”。可能只有 4 个字符,但它是 10 个音节 - 比“http://”的 7 个音节长。更具讽刺意味的音节:说“缩短”的 www 比说“万维网”长 3 倍
    • 使用“www.”在链接的开头不会使其绝对,它将是相对的(请参阅jsfiddle.net/FQTSE)。你说“www”。比“http://”更短,这是真的,但在大多数情况下,您可以只使用“//”,它更短并且使网址成为绝对网址。
    【解决方案5】:

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

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

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

    【讨论】:

      【解决方案6】:

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

      1) 这个人是故意这样的

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

      2) dns 服务器配置错误

      如果有人在您的 dns 服务器上查找 www,您的 DNS 服务器将需要对其进行解析。

      3) 网络服务器配置错误

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

      4) 网站优化

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

      5) Cookie

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

      6) 客户端浏览器缓存

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

      【讨论】:

        【解决方案7】:

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

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

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

        不要让潜在访问者出现不必要的“未找到网站”错误,从而减少有价值的流量。

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

        【讨论】:

          【解决方案8】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-04-02
            • 2011-04-15
            • 2017-04-10
            • 2012-03-19
            • 2018-05-12
            • 2018-12-11
            • 1970-01-01
            • 2022-09-28
            相关资源
            最近更新 更多