- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Tue, 24 Feb 98 13:21:18 PST
- To: http-wg@cuckoo.hpl.hp.com
Dave Kristol writes:
3) 13, Caching in HTTP
Last paragraph: I think something like the following needs to be
added at the end:
"In such cases, the design should also provide a way to inform the
end user of a break in transparency."
Are you refering to this paragraph:
A basic principle is that it must be possible for the clients to detect
any potential relaxation of semantic transparency.
or to the "Note" that follows it? At any rate, just before the short
paragraph I quoted, we already have:
3. Protocol features that allow a cache to attach warnings to
responses that do not preserve the requested approximation of
semantic transparency.
What exactly are we missing here?
4) 13.11 Write-Through Mandatory
Suppose I want to add a custom method to HTTP, one of whose
side-effects would be to invalidate a cache entry. (Suppose
I were adding something comparable to DELETE, for example.)
How would the cache know it must invalidate the associated
resource? I don't think any of the Cache-Control directives
can tell the cache to discard an entry, can they? (And if they
could, that would be an interesting denial of service attack.)
Note that 13.11 per se is not about invalidation (this is discussed in
other places); it's about requiring the cache to forward "all methods
that may be expected to cause modifications" to the origin server.
Which is another way of saying "if it's not GET or HEAD, a proxy must
forward it."
One could certainly attack the intellectual basis for the
discussions (elsewhere) about invalidation. It's basically
impossible to do anything "correct", but we've added a few
stop-gap measures so that in the places where we know what is
going on, we can avoid obvious incoherencies. A custom method
is by definition not part of HTTP/1.1, so it's hard for us to
specify what it would do to a cache entry, but one could imagine
implementing a rule that "if you are forwarding a method that
you don't understand, you should also invalidate any cache
entries that might possibly be related to the Request-URI."
The possibility of a denial-of-service attack (really, a "denial
of cache performance" attack) is not limited to this particular
case. My own preference is that we can't engineer the protocol
to prevent them, so the right thing to do is to detect them
(at the proxy, by log analysis) and then call in the lawyers.
Anyway, it seems unlikely that we could change the HTTP/1.1
spec, at this late date, to do anything new w.r.t. cache
invalidation.
-Jeff
Received on Tuesday, 24 February 1998 13:24:50 UTC