HTTP/1.1 Issue: max-age in responses not defined

This is actually an old issue that was raised privately just before
draft 07 became an RFC.  As I recall, all of the editors agreed to
the change.

[from last August ...]
Alexei Kosut pointed out to me that the max-age cache-response-directive
is not really defined in the text of the section on Cache-Control (14.9),
and that the cross-ref to it in Section 13.2.4 incorrectly points to
section 14.10 (and looks to have eaten the close-paren as well).  There
are probably enough indirect references to the meaning of max-age to make
interpretation of it clear, but the following from draft 01 should have
remained in the draft:

   When the "max-age" directive is present in a cached response
   message, an application must refresh the message if it is older
   than the age value given (in seconds) at the time of a new request
   for that resource. The behavior should be equivalent to what would
   occur if the request had included the max-age directive. If both
   the new request and the cached message have max-age specified, then
   the lesser of the two values must be used. A max-age value of zero
   (0) forces a cache to perform a refresh (If-Modified-Since) on
   every request. The max-age directive on a response implies that the
   server believes it to be cachable.

Given the other additions (must-revalidate) to Cache-control, I would
rewrite this and append it to the first paragraph of section 14.9.3:

   The expiration time of an entity may be specified by the origin server
   using the Expires header (see section 14.21). Alternatively, it may be
   specified using the "max-age" directive in a response. When the "max-age"
   directive is present in a cached response, a cache SHOULD consider the
   response to be stale if it is older than the age value given (in seconds)
   at the time of a new request for that resource.  The "max-age" directive
   on a response implies that the response is cachable.

and then add as a separate paragraph at the end of section 14.9.3:

   If both the new request and the cached entry include "max-age"
   directives, then the lesser of the two values SHOULD be used for
   determining the freshness of the cached entry for that request.

and fix the cross-ref in Section 13.2.4.

 ...Roy T. Fielding
    Department of Information & Computer Science    (fielding@ics.uci.edu)
    University of California, Irvine, CA 92697-3425    fax:+1(714)824-1715
    http://www.ics.uci.edu/~fielding/

Received on Tuesday, 25 March 1997 14:36:58 UTC