> I agree with your suggestion that one way to maintain
> cache coherency is by a background polling activity prior to the
> document being re-requested from the cache. This improves cache
> response at the expense of some background polling overhead. I think
> this suggestion can be combined with Roy's proposal (see below).
...
Thanks for working thru the arguments nicely. I agree that EVAL would
only be useful for the primary server, and hence better done by making
using a script to generate the document instead.
> If the document has an unexpired "Expires" statement in the
> header then a cache server can immediately serve a document
> without checking back with the original server.
> A document that has expired should not be served, instead a
> new copy should be obtained from the original server.
> A document without an "Expires" statement should be checked
> against the source to see if the original document still
> exists and is unchanged. Cache implementers can do this
> either as a periodic polling activity or at the time the
> document is re-requested. In either case the poll can be
> done using Roy's suggested protocol.
This seems like a workable approach. All we need to do now is to
persuade people to modify their servers to implement Roy's check on
a "Last-Modified:" header in the client's request for HEAD and GET.
This can be done incrementally, as Roy points out:
> Note that implementing this protocol would have no effect whatsoever
> on existing servers and clients. Old clients (and any without caches)
> would just continue making requests without Last-modified headers.
> Old servers (at least the NCSA httpd 1.0 that I use) will already accept
> a message of the above format and just ignore the Last-modified header.
Many thanks,
Dave Raggett