- From: Koen Holtman <koen@win.tue.nl>
- Date: Fri, 12 Apr 1996 11:44:13 +0200 (MET DST)
- To: mogul@pa.dec.com (Jeffrey Mogul)
- Cc: fielding@avron.ics.uci.edu, http-caching@pa.dec.com
Jeffrey Mogul: > > The difference between "max-age=0" and "must-revalidate" for caches > > that play by the transparency rules is that, if revalidation fails > > because of network failure: > > > > - with "max-age=0", you return a stale 200 (OK) response with a > > warning header attached > > > > - with "must-revalidate", you return a 5xx error response > > > > So must-revalidate is more than just "really really max-age=0". > > > > Speaking in road-sign metaphors, "max-age=0" means "speed limit 50 > > Km/h", while "must-revalidate" means "WARNING: sharp turn: safe > > maximal speed 50 Km/h". If you ignore the first, you only sin against > > community standards. If you ignore the second, you end up upside down > > besides the road. > > That is a better description and justification -- it should be included > in the specification. I can live with must-revalidate if it implies > derailment. > >Here is the language that I have now: > > If a cache returns a stale response, either because of a max-stale > directive on a request, or because the cache is configured to > override the expiration time of a response, the cache MUST > attach a Warning header to the stale response, using Warning 10 > (Response is stale). [....] This still looks a too much like "really really max-age=0" to me, the semantical difference is not highlighted enough. I would structure the `must-revalidate' text as follows: - discuss that must-revalidate instructs caches always to revalidate, disregarding any max-stale in the request. - discuss that must-revalidate signals cases in which the service fails if revalidation is omitted. Some text: If an origin server includes a `must-revalidate' directive, this indicates that the revalidation of stale responses is essential for the correct operation of the service offered by the origin server. `must-revalidate' should be included, for example, if failure to revalidate could result in a user seeing an incorrect description of a financial transaction about to be executed. - include talk about traffic signs here? Forbid use of `must-revalidate' unless there is a clear danger for the user? - Discuss behaviour in case of network failure. Some text: Proxy and user agent caches which try, but fail to revalidate a response with this directive because of network failure MUST NOT return a stale response with a 13 (?) (revalidation failed) warning, but MUST return a 504 (Gateway Timeout) error response. - Discuss intransparent proxy caches. Some text: Proxy caches which are unwilling to revalidate a response with this directive MUST also return a 504 (Gateway Timeout) error response. [##Invent a new 5xx response code for this?##] - discuss what intransparent user agent caches must do. Some text: User agent caches which are configured to return stale responses because of severe connectivity constraints SHOULD return a 504 error response instead of a stale response with with a 13 (?) (revalidation failed) warning, but MAY also, if specifically configured to allow this, return the stale response accompanied by a clear warning that the service author cannot guarantee correct operation of the service under these caching conditions. >-Jeff Koen.
Received on Friday, 12 April 1996 10:13:57 UTC