W3C home > Mailing lists > Public > http-caching-historical@w3.org > February 1996

Re: why no-cache is not reload

From: Ted Hardie <hardie@merlot.arc.nasa.gov>
Date: Tue, 20 Feb 1996 11:28:01 -0800 (PST)
Message-Id: <199602201928.LAA20133@merlot.arc.nasa.gov>
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

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 19:55:57 UTC