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

On Aug 16, 15:07, Roy Fielding wrote:
>
> >[Lou Montulli wrote:]
> >
> >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.
>
> [deleted]
>
> What I wrote in Draft 01 for the Pragma field's abstract semantics
> may be wrong.  It is based on my interpretation of the meaning of
> the current "no-cache" request header, and I merely extended that
> semantics to the other directives.
>
>    Pragma directives must be passed through by a proxy, regardless of
>    their significance to that proxy, since the directives may be
>    applicable to all intermediaries along the request/response chain.
>    It is not possible to specify a pragma for a specific proxy;
>    however, any pragma directive not relevant to a proxy should be
>    ignored.
>
> Instead of "intermediaries", we could say "recipients"

Instead of "recipients", I would prefer "proxies". "Recipients", which isn't
defined in section 1.3 of draft-ietf-http-spec.html, encompasses the proxies
and the user agent in my view, whereas the Pragma header field is not
destined for the user agent.

> and the following paragraph:
>
>    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.
>
> could be replaced with
>
>    Pragma directives only apply to recipients that implement features
>    corresponding to the directive's semantics.  For example, a no-cache
>    directive tells the recipient not to make use of its caching mechanism
>    in satisfying the request when it occurs in a request header, or in
>    storing the response when it occurs in a response.  Pragma directives
>    are also unidirectional in that the presence of a directive in a
>    request does not imply that the same directive be given in the response.

This somewhat changes the scope of Pragma, which is no longer restricted to
proxies in the new paragraph.

I think the name "Pragma" confuses a number of people (cf Lou's initial
interpretation), and it's not clear to all whether a Pragma header field is
destined for proxies only, or for proxies and user agents. Based on the fact
that not so many WWW clients and servers already implement Pragma, I propose
that we replace the name "Pragma" with the name "Proxy". Maybe in HTTP/1.1
specs ? It would be crystal clear that 'Proxy: no-cache' is not destined for
user agents.

Jean-Philippe

Received on Friday, 18 August 1995 06:13:24 UTC