13.2.4 Expiration Calculations
Connected: An Internet Encyclopedia
13.2.4 Expiration Calculations
Up:
Connected: An Internet Encyclopedia
Up:
Requests For Comments
Up:
RFC 2068
Up:
13 Caching in HTTP
Up:
13.2 Expiration Model
Prev: 13.2.3 Age Calculations
Next: 13.2.5 Disambiguating Expiration Values
13.2.4 Expiration Calculations
13.2.4 Expiration Calculations
In order to decide whether a response is fresh or stale, we need to
compare its freshness lifetime to its age. The age is calculated as
described in section 13.2.3; this section describes how to calculate
the freshness lifetime, and to determine if a response has expired.
In the discussion below, the values can be represented in any form
appropriate for arithmetic operations.
We use the term "expires_value" to denote the value of the Expires
header. We use the term "max_age_value" to denote an appropriate
value of the number of seconds carried by the max-age directive of
the Cache-Control header in a response (see section 14.10.
The max-age directive takes priority over Expires, so if max-age is
present in a response, the calculation is simply:
freshness_lifetime = max_age_value
Otherwise, if Expires is present in the response, the calculation is:
freshness_lifetime = expires_value - date_value
Note that neither of these calculations is vulnerable to clock skew,
since all of the information comes from the origin server.
If neither Expires nor Cache-Control: max-age appears in the
response, and the response does not include other restrictions on
caching, the cache MAY compute a freshness lifetime using a
heuristic. If the value is greater than 24 hours, the cache must
attach Warning 13 to any response whose age is more than 24 hours if
such warning has not already been added.
Also, if the response does have a Last-Modified time, the heuristic
expiration value SHOULD be no more than some fraction of the interval
since that time. A typical setting of this fraction might be 10%.
The calculation to determine if a response has expired is quite
simple:
response_is_fresh = (freshness_lifetime > current_age)
Next: 13.2.5 Disambiguating Expiration Values
Connected: An Internet Encyclopedia
13.2.4 Expiration Calculations
|