Re: Warning: header, need origin

[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