ageheader whose value is the time (in seconds) since the response has been cached. For example, if the response has been cached for two minutes thus far, the response will include a header of
age: 120. If no
ageheader is being sent, it's a good sign that you haven't gotten Edge Cache to work yet. Additionally, when the response doesn't include an
ageheader, it means the request missed Edge Cache.
Varyheader with the value
Accept-Encodingwith some responses. See this documentation.
Cache-Controlheader to public if you also have a
Set-Cookieheader present. App Engine will even change the value of the
privateif there is a
Set-Cookieheader. See here.
How EdgeCache works
EdgeCache is a reverse proxy cache that stores data for a certain period of time, and returns it quickly upon seeing the same request as long as the cache is still valid.
Here is a diagram from this video from the App Engine team about how EdgeCache works:
The "Google Front End" data centers are located around the world and can store cached data to be returned quickly upon request without ever having to run any of your App Engine code (which runs on the "App Engine Front End").
See this StackOverflow answer for more information about reverse proxies in general.
Unfortunately, the current state of knowledge about GAE's EdgeCache is pretty bad. The extent of the documentation on this secretive feature can be found in this forum post (read it now!) from 2011 and the 24 seconds between 11:11 and 11:35 in this video from Google.
Below is the list of more resources we've found pertaining to App Engine's EdgeCache feature: