Re: pragma no-cache -- Can we make it more useful?

Chris Lilley, Computer Graphics Unit (lilley@v5.cgu.mcc.ac.uk)
Thu, 14 Jul 1994 11:49:14 +0200

In message <9407131944.AA01257@cavebear.com>, karl said:

> 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