W3C home > Mailing lists > Public > ietf-http-wg-old@w3.org > September to December 1998

Re: HTTP 1.1 issue 16: 14.26 If-None-Match

From: Henrik Frystyk Nielsen <frystyk@w3.org>
Date: Wed, 11 Nov 1998 19:49:10 -0500
Message-Id: <3.0.5.32.19981111194910.0306a5e0@localhost>
To: Jeffrey Mogul <mogul@pa.dec.com>, "Ross Patterson" <ROSSP@SS1.Reston.VMD.Sterling.COM>
Cc: http-wg@hplb.hpl.hp.com
At 14:58 11/11/98 PST, Jeffrey Mogul wrote:
>Ross Patterson writes:
>
>    In section 14.26 "If-None-Match", the statements
>    
>       "If "*" is given and no current entity exists, then the
>       server MAY perform the requested method as if the
>       If-None-Match header field did not exist."
>
>    and
>
>       "The meaning of "If-None-Match: *" is that the method
>       MUST NOT be performed if the representation selected by
>       the origin server (or by a cache, possibly using the Vary
>       mechanism, see section 14.44) exists, and SHOULD be
>       performed if the representation does not exist."
>
>    conflict on the topic of "If-None-Match: *". The former
>    asserts that the server MAY perform the request, the latter
>    that it SHOULD.  I think the MAY is correct.
>
>Hmm.  I confess that I no longer remember all of the
>discussion behind this, but I lean towards SHOULD.

I think it actually is correct although the logic maybe more complex than
need be:

*If* there is an "If-None-Match: *"  header *and* no representation exists
then the server can either a) discard the "If-None-Match: *" or b) use it
according to the algorithm outlined in the second paragraph above. Assuming
that your example below SHOULD work, then the result should be the same.

However, I am not sure that a) in fact makes sense as presumably the server
would have used the existence of the "If-None-Match: *" header to check for
existing representations before finding out that it could have ignored it.
This is like saying: "After you have used it you may find out that you
don't need it, but that's OK."

Therefore, I would suggest that the first paragraph is simply removed. The
second handles all cases as far as I can see.

>Consider the request:
>
>	PUT /foo.data HTTP/1.1
>	Host: whatever.com
>	Content-Length: 0

Henrik
Received on Thursday, 12 November 1998 00:49:40 EST

This archive was generated by hypermail pre-2.1.9 : Wednesday, 24 September 2003 06:33:25 EDT