URL 中是否还需要 WWW?

Avatar of Pieter De Decker
Pieter De Decker 发布

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

多年来,一场关于地址栏的小争论一直在持续。一方是像 GoogleInstagramFacebook 这样的品牌。这组人选择将 example.com 重定向到 www.example.com。另一方则是:GitHubDuckDuckGoDiscord。这组人选择相反的做法,将 www.example.com 重定向到 example.com

URL 中是否应该包含“WWW”?一些开发者对这个问题持有强烈的观点。在了解一些历史背景之后,我们将探讨支持和反对它的论点。

为什么会有 Ws?

三个 Ws 代表着 “万维网”,这是 20 世纪 80 年代末的发明,它向世界介绍了浏览器和网站。使用“WWW”的做法源于一种传统,即根据服务类型为子域名命名

  • 位于 www.example.com 的 Web 服务器
  • 位于 ftp.example.com 的 FTP 服务器
  • 位于 irc.example.com 的 IRC 服务器

无 WWW 域名问题 1:将 Cookie 泄漏给子域名

“无 WWW”域名的批评者指出,在某些情况下,subdomain.example.com 将能够读取由 example.com 设置的 Cookie。例如,如果您是 Web 托管提供商,允许客户在您的域名上运行子域名,这可能是不可取的。虽然此问题是有效的,但此行为特定于 Internet Explorer。

RFC 6265 标准化了浏览器处理 Cookie 的方式,并明确指出此行为不正确。

另一个潜在的泄漏来源是 example.com 设置的任何 Cookie 的 Domain。如果 Domain 值显式设置为 example.com,则 Cookie 也将暴露给其子域名。

Cookie 值暴露给 example.com暴露给 subdomain.example.com
secret=data
secret=data; Domain=example.com

总之,只要您不显式设置 Domain 值并且您的用户不使用 Internet Explorer,就不会发生 Cookie 泄漏。

无 WWW 域名问题 2:DNS 问题

有时,“无 WWW”域名可能会使您的域名系统 (DNS) 设置复杂化。

当用户在浏览器的地址栏中输入 example.com 时,浏览器需要知道他们尝试访问的 Web 服务器的互联网协议 (IP) 地址。浏览器会向您域名的域名服务器请求此 IP 地址——通常是通过用户的互联网服务提供商 (ISP) 的 DNS 服务器间接请求。如果您的域名服务器配置为使用包含 IP 地址的 A 记录 进行响应,“无 WWW”域名将正常工作。

在某些情况下,您可能希望改为使用网站的 规范名称 (CNAME) 记录。此类记录可以声明 www.example.comexample123.somecdnprovider.com 的别名,这告诉用户的浏览器改为查找 example123.somecdnprovider.com 的 IP 地址并将 HTTP 请求发送到那里。

请注意,上面的示例使用了 WWW 子域名。无法为 example.com 定义 CNAME 记录。根据 RFC 1912,CNAME 记录不能与其他记录共存。如果您尝试为 example.com 定义 CNAME 记录,则不允许 example.com 的 MX(邮件交换器)记录存在。因此,将无法接收 @example.com 上的邮件。

一些 DNS 提供商将允许您解决此限制。Cloudflare 将其解决方案称为 CNAME 展平。使用此技术,域名管理员配置 CNAME 记录,但其域名服务器将公开 A 记录。

例如,如果管理员配置了指向 example123.somecdnprovider.comexample.com 的 CNAME 记录,并且存在指向 1.2.3.4example123.somecdnprovider.com 的 A 记录,则 Cloudflare 将公开指向 1.2.3.4example.com 的 A 记录。

总之,虽然对于希望使用 CNAME 记录的域名所有者而言,此问题是有效的,但某些 DNS 提供商现在提供了合适的解决方法。

无 WWW 的优势

大多数 反对 WWW 的论点 都是实用性或美观性的。 “无 WWW”的支持者认为,说和打 example.comwww.example.com 更容易(这可能对技术水平较低的用户来说不太混乱)。

WWW 子域名的反对者还指出,删除它会带来微不足道的性能优势。网站所有者可以通过这样做,从每个 HTTP 请求中减少 4 个字节。虽然对于 Facebook 这样流量很大的网站来说,这些节省可能会累积起来,但带宽通常不是稀缺资源。

WWW 的优势

支持 WWW 的一个实用论点是在使用较新的顶级域名的情况下。例如,当 example.miami 不是时,www.example.miami 立即可以识别为 Web 地址。对于使用 .com 等可识别顶级域名的网站来说,这不太令人担忧。

对搜索引擎排名的影响

目前的共识是,您的选择不会影响您的搜索引擎性能。如果您希望从一个迁移到另一个,您需要配置永久重定向 (HTTP 301) 而不是临时重定向 (HTTP 302)。永久重定向可确保旧 URL 的 SEO 值转移到新 URL。

同时支持两种方案的技巧

网站通常会选择 example.comwww.example.com 作为其官方网站,并为另一个配置 HTTP 301 重定向。理论上,可以同时支持 www.example.comexample.com。在实践中,成本可能大于收益。

从技术角度来看,您需要验证您的技术栈是否能够处理它。您的内容管理系统 (CMS) 或静态生成的网站必须将内部链接输出为相对 URL,以保留访问者首选的主机名。除非您可以将主机名配置为别名,否则您的分析工具可能会分别记录到两个主机名的流量。

最后,您需要采取额外步骤来保护您的搜索引擎性能。Google 会将 URL 的“WWW”和“非 WWW”版本视为 重复内容。为了在其搜索索引中删除重复内容,Google 将显示它认为用户会更喜欢的版本——无论好坏。

为了控制您在 Google 中的显示方式,建议插入规范链接标签。首先,确定哪个主机名将是官方(规范)主机名。

例如,如果您选择 www.example.com,则必须在 https://example.com/my-article<head> 标签中插入以下代码片段

<link href="https://www.example.com/my-article" rel="canonical">

此代码片段指示 Google“无 WWW”变体表示相同的内容。通常,Google 会在搜索结果中首选您标记为规范的版本,在本例中为“WWW”变体。

结论

尽管双方进行了激烈的宣传,但只要您了解其优势和局限性,这两种方法仍然有效。为了覆盖所有方面,请务必设置从一个到另一个的永久重定向,然后您就完成了。

作者选择 开放互联网/言论自由基金 作为捐赠对象,作为 为捐赠写作 计划的一部分。