- From: Koen Holtman <koen@win.tue.nl>
- Date: Mon, 28 Aug 1995 23:37:57 +0200 (MET DST)
- To: Dave Kristol <dmk@allegra.att.com>
- Cc: sjk@amazon.com, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
Dave Kristol:
>Further complicating the question is, what do existing caching proxies
>do, and how would that behavior interact with State-Info?
As far as I know, you can depend on existing caches knowing about
Expires: <yesterday>. The pragma: no-cache *response* header is very
new, so existing caches probably won't know about it.
So it could be said that existing caches are already able to support
(the latest version of) State-info.
The biggest problem is existing *user agent* caches. User agents with
internal caches that completely ignore Expires and Pragma are still
very common.
>[Shel Kaphan <sjk@amazon.com> wrote: ]
> >
> > [ much discussion of idempotence, caching, etc. ]
> >
> > I don't think we have to make a big deal about defining idempotence.
>
>My only reason for fussing with the definition is to be sure we're talking
>about the same things and using the same terms to do so. I feared we were
>using the same words to mean different things.
In a previous message your definition was:
>I think the prevailing definition of an idempotent {method, URI} pair
>is that you get back exactly the same content each time you make a
>request with that pair.
I would call that a `static' pair.
Your meaning of idempotent is not the (prevailing?) one used in the draft
http spec. From draft-ietf-http-v10-spec-02.html:
#10.2 Idempotent Methods
[...]
#In particular, the convention has been established that the GET and
#HEAD methods should never have the significance of taking an action
#other than retrieval. These methods should be considered "safe" and
#should not have side effects. This allows the client software to
#represent other methods, such as POST, in a special way so that the
#user is made aware of the fact that an non-idempotent action is being
#requested.
#
#Naturally, it is not possible to ensure that the server does not
#generate side-effects as a result of performing a GET request; in
#fact, some dynamic resources consider that a feature. The important
#distinction here is that the user did not request the side-effects, so
#therefore cannot be held accountable for them.
>From this, I read that:
- GET and HEAD are defined to be the idempotent methods
- idempotent means `safe'.
IMO, the spec should be rewritten to avoid the use of the word
`idempotent' altogether. Failing that, there should be a proper
definition of it in the terminology section.
[..using existing cache prevention methods for stateful services..]
> > I don't see why it needs to be any more complex than that.
>
>That much sounds fine, and I agree. The messiness arises when State-Info
>passes through a caching proxy in one direction or the other. (I know
>that isn't news to you.) The goal is to cache as much stuff as possible
>and still perform correctly.
The goal (at least my goal) is to add State-Info to http 1.1. I would
like to discuss the caching implications of State-Info in terms of the
currently drafted http 1.1 caching mechanisms.
State-Info already allows very adequate caching using the existing
http caching definitions.
The discussion on how to cache as much stuff as possible (by redefining
`idempotent' in http 1.1 or whatever) should be done in another thread.
> > [ tuned caches ... ]
> >
> > As for the idea that caches might decide to cache things they
> > shouldn't (overruling headers in responses), and then give error
> > responses to requests with state-info requests, I think that's really
> > a travesty.
>
>I agree, but apparently it's something that must be dealt with, just
>like error conditions in general.
The reason for putting something about tuned caches in the state-info
spec is that proxy operators need to be reminded of their
responsibility to operate a non-broken cache, or, failing that, to
operate a cache that tells you when it is broken.
As long as tuning is common (and it seems to be, though I don't have
any hard figures), proxy operators need to be reminded of this. Shel,
I don't like this any more than you do.
Note that the above text about tuned caches does not introduce any
obligation for the operators of _working_ caches to treat State-Info
as a special case.
>Dave Kristol
Koen.
Received on Monday, 28 August 1995 14:40:56 UTC