Re: Expires, Last-Modified, Pragma: no-cache etc.

Lou Montulli writes:
> John Franks writes:
> > It seems to me that much (but not all) of the discussion over the last
> > few months on the Expires, Last-Modified headers is really due to the
> > desire of server administrators to control whether a document is cached.
> > 
> > One of the big improvements in the current HTTP spec is the "Pragma:
> > no-cache" header.  This provides a way to say, "Don't cache this,"
> > without the need for fictitious expiration or last-modified dates.
> > This is important.  There are often good reasons for saying that a
> > document should not be cached, but having a future expiration date
> > (for example, if the validity of the document doesn't, in fact *expire*
> > until that date).
> > 
> > The only problem is that server admins often want to prevent local disk
> > caching as well as proxy caching and the Pragma: no-cache applies only
> > to the latter.  Perhaps we also need a "Pragma: no-local-cache".
> > 
> > One thing of which I am thoroughly convinced is that if a clean mechanism
> > for giving administrators this capablility is not made available then
> > every conceivable ugly hack which has the desired effect will gain
> > widespread use.  We will see 1970 expiration dates (always a lie) and
> > future last-modified dates (also a lie).  These hacks will likely work
> > with some clients/proxies and fail with others. There will, no doubt,
> > even be those who use different hacks based on the User-Agent header
> > of the request!  Why not make life easier for everyone and allow a server
> > to cleanly request that a document not be cached to local disk.
> > This should be a separate request from the Pragma: no-cache request to
> > prevent proxy caching.
It is an interesting question: there are any good reasons to forbid
clients to cache documents in its non-shared cache? Doubtful, I think.
But if anybody can give good examples explaining the need for this,
then we shall consider adding the function proposed by "Pragma: no-local-cache",
but (see later)
> I recently changed netscape to interpret "Pragma: no-cache" and not
> cache the object.  This is slightly different than a "Expires" header
> because the object will not even be cached for history navigation.
> (Documents that are expired are still shown when traversing the session
> history).  Haveing the client interpret "Pragma: no-cache" lets servers
> tell the client that this information is highly sensitive or volitile
> and should not be cached in any way.
Oops! The draft-02 states: (in section 8.13)
   Pragma directives do not apply to the end-points of a 
   request/response chain. For example, a user agent's internal
   (non-shared) cache and/or history mechanism should ignore all 
   pragma directives in received messages. Similarly, pragma 
   directives are not applicable to the origin of a resource, though 
   they may be applicable to a server's internal response cache.
Your change is a non-conformance!
(continuing on "Pragma: no-local-cache") but we should do this using some
other machanism, not a pragma!

Andrew. (Endre Balint Nagy) <bne@bne.ind.eunet.hu>

Received on Tuesday, 15 August 1995 22:04:35 UTC