使用 Google AMP 缓存
简介
Google AMP 缓存 存储有效的 AMP,并提供对 AMP 的持续快速访问。任何人都可以使用它。
AMP 缓存 URL 格式
如果可能,Google AMP 缓存将为每个 AMP 文档的域名创建一个子域名,方法是先将其从 IDN(punycode) 转换为 UTF-8。缓存将每个 -
(破折号)替换为 --
(2 个破折号),并将每个 .
(点)替换为 -
(破折号)。例如,pub.com
将映射到 pub-com.cdn.ampproject.org
。
以下是 https://amp.org.cn/about/websites/
的 AMP 缓存 URL
转换后的 AMP 缓存 URL 由以下部分组成
amp-dev
:使用上述算法将发布商域转换成子域。cdn.ampproject.org
:AMP 缓存域。c
:表示这是一份 AMP 文档(还有表示图片的i
和表示字体等资源的r
)。s
:表示 AMP 缓存使用 TLS(安全 HTTPS)从原点获取内容。amp.dev/examples/components/amp-img
:原始 URL(不包括方案)。
URL 可以包含查询字符串中的参数,只需将这些参数也包含在 AMP 缓存 URL 中即可。
示例:https://amp-dev.cdn.ampproject.org/c/s/amp.dev/documentation/examples/api/query?value=Hello%20World。
缓存更新
AMP 缓存使用 落后一步的缓存模型,该模型可由 max-age
缓存指令 控制。您可以使用此示例页面测试行为,该页面将在提供服务时打印当前日期
Max-age 15s:https://amp-dev.cdn.ampproject.org/c/s/amp.dev/documentation/examples/api/query?maxage=15。
重定向和错误处理
以下是一些 AMP 缓存处理重定向和错误的示例
重定向
AMP 缓存会在解析 AMP URL 时遵循重定向。例如,如果一个 URL 重定向到另一个 AMP URL
$ curl -I https://ampbyexample.com/components/amp-img/ HTTP/1.1 301 Moved Permanently Content-Type: text/html; charset=utf-8 Location: https://amp.org.cn/documentation/examples/components/amp-img/ ...
那么 AMP 缓存将为原始 URL 返回已解析重定向的内容。
示例:https://amp-dev.cdn.ampproject.org/c/s/ampbyexample.com/components/amp-img/。
未找到
如果在 AMP 缓存中找不到某个页面,它将显示错误页面并返回 404 状态。
示例:https://amp-dev.cdn.ampproject.org/amp.dev/not-found
无效 AMP
如果某个页面是无效 AMP,AMP 缓存将返回 404 状态。
示例:https://amp-dev.cdn.ampproject.org/amp.dev/static/samples/files/invalid_amp.html
服务器错误
如果某个 URL 返回 5XX 服务器错误,AMP 缓存将返回 404 状态。
示例:https://amp-dev.cdn.ampproject.org/amp.dev/documentation/examples/api/error
如果本页上的说明未能涵盖您的所有问题,请随时联系其他 AMP 用户来讨论您的确切用例。
转到 Stack Overflow 无法解释的功能?AMP 项目强烈鼓励您参与和做出贡献!我们希望您成为我们开源社区的持续参与者,但我们也欢迎您对您特别热衷的问题做出一次性贡献。
在 GitHub 上编辑示例-
由 @kul3r4 撰写