Age
The amount of time (in seconds) a response has been cached (in all nodes).
Fastly reads this header from responses. It is defined by an external standard.
When a resource is fetched from a backend server, Fastly will use the Age
header as a factor in determining the freshness of the object and therefore the value of beresp.ttl
in VCL.
For example, if a resource is served with the following response headers:
Cache-Control: max-age=30Age: 10
then Fastly will set besresp.ttl
to 20
(30-10), and record the Age
header as part of the cached object. A request received 8 seconds later for the same resource would see a cache hit with an obj.age
of 18
and obj.ttl
of 12
.
Revalidation
When a resource has passed its TTL and is therefore stale, Fastly will attempt to revalidate it if the resource includes a Last-Modified
or ETag
header. If the response to a revalidation request is 304 Not Modified
, we will update the stored object's TTL, and reset the Age
to the value included in the revalidation response, or zero if there is no Age
header on the new response.
When stale content is served from cache, the value of Age
may be greater than the value of the cached object's TTL.
Expires-based freshness
When the TTL of a resource is determined by an Expires
header, Fastly will initialise the cache object's Age
to zero, regardless of the value of the Age
header on the backend response.