W3C home > Mailing lists > Public > ietf-http-wg@w3.org > October 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: <>
To: Jeffrey Mogul <mogul@pa.dec.com>, Ross Patterson <ROSSP@ss1.reston.vmd.sterling.com>
Cc: http-wg@hplb.hpl.hp.com
X-Mailing-List: <http-wg@cuckoo.hpl.hp.com> archive/latest/225
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

Received on Wednesday, 11 November 1998 16:52:20 UTC

This archive was generated by hypermail 2.4.0 : Thursday, 2 February 2023 18:43:06 UTC