- From: Ted Hardie <hardie@merlot.arc.nasa.gov>
- Date: Tue, 20 Feb 1996 11:28:01 -0800 (PST)
- To: mogul@pa.dec.com (Jeffrey Mogul)
- Cc: fielding@avron.ICS.UCI.EDU, hardie@nic.nasa.gov, http-caching@pa.dec.com
I very much appreciate the time Roy and Jeff have taken to lay out the various caching scenarios and to match them to the current syntax. I found Jeff's summary, in particular, very helpful. I also believe that the spec needs to do as good a job as that summary does in making clear what the various options are and how to achieve them. Section 13 of the current spec is a placeholder, and would be the logical place for such a summary; I encourage plagiarism of Jeff's grids for that section. I don't have anything personally wrapped up in what terminology gets used for each of these, but I will say that I find Jeff's terminology easier to follow and less liable to misinterpretation. I also tend to agree with his <SOAPBOX> section below. In fact, based on his soapbox section, I would a (c) to the section on syntax in his consensus statement: (c)Likelihood of mis-implementation based on a failure to distinguish between behaviors which vary based on which party to a transaction use a particular syntax. regards, Ted Jeff writes: > After watching this discussion go by, I'd like to agree with Roy > that (1) the Cache-control directives in his HTTP/1.1 draft > will work, and (2) they are obviously confusing, because > a lot of people (myself included) were confused for a long time. > > The question of what names should be used is definitely a secondary > one, but since lots of people do NOT find the currently-used names > "meaningful" (in that they unambiguously convey the intended use > and semantics), if we don't change the names then we must certainly > improve the specification. The purpose of an IETF-blessed spec > is to allow independent implementation of interoperable systems, > so if an aspect of the spec has been widely misconstrued, it has > to be fixed. > > Let me see what we have consensus on, and where we are still > disagreeing. > > I will begin WITHOUT reference to specific syntax, because > if we cannot agree on the semantics then there's no point > in debating syntax. > > (1) Semantics: the HTTP protocol needs to support these cases > in request messages: > > (A) I want a firsthand response from the origin server. > > (B) I want a response that has been validated with the > origin server after I made this request. > > (C) I want to validate my own cached response with > the origin server. > > (D) I want to validate my own cached response, but I'll > accept a non-authoritative answer (i.e., from a cache > that has a still-fresh copy with a matching validator) > > (E) I want a fresh response. > > Note that I've arranged these in roughly decreasing order of "paranoia". > > (2) Terminology: since we seem to spend a lot of time arguing > about things when we are really just using different definitions > for terms, let me propose a set of terms that we can use for these > five cases. > > A = Reload > B = Revalidate > C = Specific revalidate > D = Conditional method > E = Normal method > > If someone would like to propose a better set of terms, please do > so. Please don't just complain without proposing something else. > > (3) Syntax: if I understand Roy's spec correctly, this is what > he has proposed: > > A = Reload > GET /home.html HTTP/1.1 > Cache-control: no-cache > > B = Revalidate > GET /home.html HTTP/1.1 > Cache-control: max-age=0 > > C = Specific revalidate > GET /home.html HTTP/1.1 > If-Modified-Since: Thu, 15 Feb 1996 15:05:20 GMT > Cache-control: no-cache > > D = Conditional method > GET /home.html HTTP/1.1 > If-Modified-Since: Thu, 15 Feb 1996 15:05:20 GMT > > E = Normal method > GET /home.html HTTP/1.1 > > Of course, "If-Invalid:" would be used if the server has sent an opaque > validator. > > This is what my proposal was: > A = Reload > GET /home.html HTTP/1.1 > Cache-control: reload > > B = Revalidate > GET /home.html HTTP/1.1 > Cache-control: revalidate > > C = Specific revalidate > GET /home.html HTTP/1.1 > If-Modified-Since: Thu, 15 Feb 1996 15:05:20 GMT > Cache-control: revalidate > > D = Conditional method > GET /home.html HTTP/1.1 > If-Modified-Since: Thu, 15 Feb 1996 15:05:20 GMT > > E = Normal method > GET /home.html HTTP/1.1 > > <SOAPBOX> > I'll state for the record that, while I don't think it makes a > big difference, I think it is unnecessarily confusing and absolutely > without pragmatic value to use the same tokens (e.g., no-cache > or max-age) on both request and response, especially when their > meanings are significantly different depending on the direction. > > While it is true that the current practice with "Pragma: no-cache" > does make this error, I do not think that this makes it any more > attractive to compound the error in a brand-new header ("Cache-control:"). > </SOAPBOX> > > Summary of consensus status: > (1) I believe we have consensus on the underlying semantics for > this aspect of the protocol. > > (2) We need commonly-held terminology to discuss things, and unless > someone suggests something better soon, I'll assume we are agreed > on my proposed terms. > > (3) The debate over syntax, as far as I can, is entirely concerned > with > (a) different views of what is "meaningful" (or how > meaningful a token name needs to be anyway). > > (b) different views of whether the existing syntax of > Pragma: should be carried forward to Cache-control: > > If anyone has a disagreement about this summary of our debate, > please speak up immediately. Larry Masinter has asked me to > prepare a list of items and how we stand on them, and I need > to do this in the next 48 hours. > > -Jeff >
Received on Tuesday, 20 February 1996 19:47:07 UTC