- From: Koen Holtman <koen@win.tue.nl>
- Date: Tue, 9 Apr 1996 13:11:44 +0200 (MET DST)
- To: mogul@pa.dec.com (Jeffrey Mogul)
- Cc: koen@win.tue.nl (Koen Holtman), http-caching@pa.dec.com
[cc: to http-caching@pa.dec.com added] Jeffrey Mogul: > [Koen:] > I want text on mandatory actions in case of unavoidable network > problems. > >How about this: > > Because a cache may be configured to ignore a server's specified > expiration time, and because a client request may include a > max-stale directive, which has a similar effect, the protocol also > includes a mechanism for the origin server to require revalidation > of a cache entry on any subsequent use. When the > ``must-revalidate'' directive is present in a response received by > a cache, that cache MUST NOT use the value to respond to a > subsequent request without first revalidating it with the origin > server. (I.e., the cache must do an end-to-end revalidation every > time.) > > The ``must-revalidate'' directive is necessary to support reliable > operation for cookies and certain other protocol features. In all > circumstances an HTTP/1.1 cache MUST obey the ``must-revalidate'' > directive; in particular, if the cache cannot reach the origin > server for any reason, it MUST generate a 504 (Gateway Timeout) > response. Note that HTTP/1.0 caches will ignore this directive. > >I.e., no beating around the bush with a Warning code. The cache >simply cannot return a non-error value. I think you are on the right track: giving a 504 would be better than a warning code. I see that people are complaining about your MUSTs above, as I expected they would. To meet the PDA complaints in this thread, I propose the following language. Feel free to improve the wording. The presence of ``must-revalidate'' must be seen as a signal by the service author that the service of which this resource is a part may fail to work correctly if the resource is not revalidated every time. Presence of ``must-revalidate'' instead of ``max-age=0'' indicates that the service author finds that, in case that revalidation is not possible, the return of a 504 (Gateway Timeout) error response is more desirable than the showing of an unvalidated response from cache with a warning. User agents SHOULD NOT disregard ``must-revalidate'' directives, except maybe if the user has indicated that there are exceptional constraints on the usage of network resources. Every time the revalidation of a response with a ``must-revalidate'' directive fails or is omitted, the user agent MUST explicitly warn the user of the fact that the service author indicated that this may cause the service accessed to work incorrectly. This may not be enough to stop PDA makers from providing options to switch of such warnings, but at least it is clear enough to indicate who is to blaim if users switch of these warnings and get bitten. >-Jeff Koen.
Received on Tuesday, 9 April 1996 11:43:19 UTC