Using the Google AMP Cache
Introduction
The Google AMP Cache stores valid AMPs and provides a consistently fast access to AMPs. It is available for anyone to use.
AMP Cache URL Format
When possible, the Google AMP Cache will create a subdomain for each AMP document's domain by first converting it from IDN (punycode) to UTF-8. The caches replaces every -
(dash) with --
(2 dashes) and replace every .
(dot) with -
(dash). For example, pub.com
will map to pub-com.cdn.ampproject.org
.
Here is AMP Cache URL for https://amp.dev/about/websites/
:
The converted AMP Cache URL consists of the following parts:
amp-dev
: the publisher domain converted into a subdomain using the algorithm described above.cdn.ampproject.org
: the AMP Cache domain.c
: to indicate that it's an AMP document (there is alsoi
for image andr
for resources such as fonts).s
: indicating that the AMP Cache fetches the content from the origin using TLS (secure HTTPS).amp.dev/examples/components/amp-img
: the original URL excluding the scheme.
It is OK for URLs to include parameters in the query string, simply include these in the AMP Cache URL as well.
Example: https://amp-dev.cdn.ampproject.org/c/s/amp.dev/documentation/examples/api/query?value=Hello%20World.
Cache updates
The AMP Cache uses a one-behind caching model which can be controlled by the max-age
cache directive. You can test the behavior with this sample page, which will prints the current date at serving time:
Max-age 15s: https://amp-dev.cdn.ampproject.org/c/s/amp.dev/documentation/examples/api/query?maxage=15.
Redirect & Error Handling
Here are some examples for how the AMP Cache handles redirects and errors:
Redirects
The AMP Cache follows redirects when resolving AMP URLs. For example, if an URL redirects to another 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.dev/documentation/examples/components/amp-img/ ...
Then the AMP Cache will return the content of the resolved redirect for the original URL.
Example: https://amp-dev.cdn.ampproject.org/c/s/ampbyexample.com/components/amp-img/.
Not Found
When a page is not found in the AMP Cache, it will show an error page and return a 404 status.
Example: https://amp-dev.cdn.ampproject.org/amp.dev/not-found
Invalid AMP
When a page is invalid AMP, the AMP Cache will return a 404 status.
Example: https://amp-dev.cdn.ampproject.org/amp.dev/static/samples/files/invalid_amp.html
Server Errors
If an URL returns a 5XX server errors, the AMP Cache will return a 404 status.
Example: https://amp-dev.cdn.ampproject.org/amp.dev/documentation/examples/api/error
如果此页面上的说明未能涵盖您的所有问题,欢迎与其他 AMP 用户取得联系,讨论您的具体用例。
前往 Stack Overflow 一项无法解释的功能?AMP 项目强烈鼓励您参与并做出贡献!我们希望您能成为我们开放源代码社区的持续参与者,但我们也欢迎您对所热衷问题做出一次性贡献。
编辑 GitHub 上的示例-
Written by @kul3r4