Expiration Model Recall that expiration is used to avoid sending requests . Client may also specify that it will accept stale responses, up to some maximum amount of staleness. This may be necessary to support disconnected operation, or high availability in the face of poor connectivity. Server could also assign expiration time in past to force caches to revalidate every request. Heuristic Expiration Caches work fastest if they don't check origin server to decide if cached copy is up to date.
Age is corrected to take into account propagation delay between multiple levels of caches.
Validators Recall that Cache uses expiration to avoid sending a request to an origin server. Origin server uses validation to avoid sending full responses to requests. Cache checks with origin server to see if its cached entry is still usable, in which case full response is not sent. One can think of a strong validator as one that changes whenever the bits of an entity changes, while a weak validator changes whenever the meaning of an entity changes. Thus the origin server is contacted on every write operation.