- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Mon, 08 Apr 96 12:08:12 MDT
- To: koen@win.tue.nl (Koen Holtman)
- Cc: mogul@pa.dec.com (Jeffrey Mogul), http-caching@pa.dec.com
Thanks for explaining that with an example. I think I finally understand
what you need, now.
However, I think there is a much simpler and more robust way of
providing it.
The basic problem is that we have already come to a consensus that
caches may be configured to ignore max-age (on responses) if that
is deemed necessary for performance. Not recommended, but allowed.
The protocol also already allows an origin server to say "don't
cache this response," but we all agree that this is too restrictive
to use in all cases.
You write:
So what we don't want is caches which are configured to give stale
responses instead of doing a conditional GETs when the max-age is
exceeded: this leads to the showing of the old basket, which is
unacceptable.
I.e., you need an unavoidable mechanism to require at least conditional
validations on every access.
There are two ways to accomplish this:
(1) somehow the origin server detects when a client cache
is not observing max-age, and in such cases, the origin
server forces non-caching of responses to such requests.
(2) We provide a mandatory mechanism in the protocol that
allows the origin server to mark a response as "cachable
but you must always revalidate, no exceptions allowed".
I've tried to argue that using method (1) is complex, may hurt
performance in unrelated contexts (violating the rule that Roy
proposed "place the burdens where the benefits lie"), and may not
be robust. We could argue more about that, but time is short.
But method #2 seems to be quite simple and foolproof: We add a
new
Cache-control: must-revalidate
for responses. The origin server sets this on any response that
it requires revalidations (e.g., conditional GETs). No HTTP/1.1
cache is allowed to ignore it. It has the same meaning as
Cache-control: max-age=0
on responses, but MUST be obeyed.
Any problems with that?
-Jeff
Received on Monday, 8 April 1996 19:40:41 UTC