以下内容最初由 Google 软件工程师 John Coiner 发布在 Google 开发者博客上。
今天,我们宣布对 Google AMP 缓存 的域模式进行更改。很快,Google AMP 缓存将通过其在 https://cdn.ampproject.org
的子域为每个网站提供服务。此更改将允许通过 Google AMP 缓存提供的内容受到 Web 的基本安全模型的保护:HTML5 来源。
大多数 AMP 文档发布者无需立即进行更改。但是,为了受益于额外的安全保障,建议所有 AMP 发布者更新其 CORS 实施,为新的 Google AMP 缓存 URL 模式做好准备。Google AMP 缓存将继续支持现有的 URL,但这些 URL 最终会重定向到新的 URL 模式。
Google AMP 缓存将如何创建子域名
当字符限制和技术规范允许时,Google AMP 缓存创建的子域名将是人类可读的,并且与发布者的域名非常相似。
在可能的情况下,Google AMP 缓存将首先将 AMP 文档域名从 IDN(punycode)转换为 UTF-8,来创建每个子域名。每个“-”(破折号)将替换为“–”(2 个破折号),每个“.”(点)将替换为“-”(破折号)。例如,pub.com
将映射到 pub-com.cdn.ampproject.org
。如果技术限制阻止了人类可读的子域名,则将使用单向哈希。
具有远程端点的托管方和服务提供商所需的更新
由于上述更改,CORS 端点将开始看到具有新来源的请求。需要以下更新
- 将请求接受范围扩展到新的子域名:目前仅接受来自
https://cdn.ampproject.org
和发布者自己来源的 CORS 请求的网站必须更新其系统,以接受来自https://[pub-com].cdn.ampproject.org
、https://cdn.ampproject.org
和 AMP 发布者自己来源的请求。 - 收紧安全请求接受:目前接受来自
https://*.ampproject.org
的 CORS 请求的网站(如 AMP 规范中所述),可以通过限制接受来自https://[pub-com].cdn.ampproject.org
、https://cdn.ampproject.org
和 AMP 发布商自己的来源的请求来提高安全性。不再需要支持https://*.ampproject.org
。 - 广告、分析和其他技术提供商支持新的子域名模式:具有 CORS 端点的服务提供商(如分析和广告供应商)还需要确保其系统接受 Google AMP 缓存的子域名的请求(例如
https://ampbyexample-com.cdn.ampproject.org
),以及他们自己的主机。
检索 Google AMP 缓存网址
对于显示 AMP 文档并从 Google AMP 缓存提供服务的平台,检索 Google AMP 缓存网址的最佳方法是继续使用 Google AMP 缓存网址 API。Google AMP 缓存网址 API 将在 2017 年第一季度更新,以返回包含子域名的新的缓存网址方案。
您可以使用交互式工具在 ampbyexample.com 上找到为每个网站生成的 Google AMP 缓存子域名。
时间和测试资源
Google 搜索计划尽快开始使用新的网址方案,并监控网站的兼容性。
此外,开发者测试沙盒可在 g.co/ampdemo/cache 获得,以帮助确保顺利过渡。在完成上述更新后,请使用沙盒通过 Google 搜索测试访问您的网站。沙盒使用新的域方案加载 AMP 页面,因此,如果您在此配置中发现与 CORS 相关的错误,则应解决这些问题,以避免在域方案完全推出后出现错误。