> To use the technique that I think you are suggesting, the viewer would have to
> send a HEAD request to get the document change date. Then the viewer would
> have to look at the response and:
No, not the viewer, the proxy. And I wasn't suggesting it, I thought I was
describing established practice. If this is not correct, someone tell me please.
So, conceptually, what I was describing goes:
client GETs document, but this is routed via proxy cache
proxy HEADs document at original server
if (original_mod_date <= cached_mod_date) and not expired(cached_document)
then
return cached_document
else
GET new original document
put it in cache
return cached_document
endif
However, looking at Luotonen and Altis "World Wide Web Proxies", Adv. Proc WWW94
pp50-51 there is an optimisation to accomplish this in one transaction instead of
two:
<quote>
When it is essential that the retrieved document is up-to-date, it is necessary
to contact the remote server for each GET request. The HTTP protocol already
contains the HEAD method for retrieving a document's header information, but noit
the document itself [...]
[...]it would be very inefficient to make a second connection to the remote
server [...]
The HTTP protocol was therefore extended to contain an If-modified-since request
header, making it possible to do a conditional GET request.
</quote>
I notice that I have penciled in a comment Ari made at the original talk:
"pragma: nocache gets the original version without going via the proxy. This
might be put on the reload button"
I have also noted:
"proxies do not cache CGI documents and protected documents"
I hope this is a useful clarification.
-- Chris