Checking the Expires or max-age header
Some HTTP objects contain Expires headers or max-age headers that define how long the object can be cached. Comparing the current time with the expiration time tells the proxy whether or not the object is fresh.
Checking the Last-Modified / Date headers
If an HTTP object has no Expires header or max-age header, the proxy can calculate a freshness limit using the following formula:
freshness_limit =(date - last_modified) * 0.10
where date is the date in the object's server response header, and last_modified is the date in the Last-Modified header. If there is no Last-Modified header, the proxy uses the date that the object was written to cache. You can increase or reduce the value 0.10 (10 percent). See Modifying the aging factor for freshness computations.
For HTTP objects that do not have Expires headers or do not have both Last-Modified and Date headers, the proxy uses a maximum and minimum freshness limit. See Setting an absolute freshness limit.