- From: Alex Rousskov <rousskov@measurement-factory.com>
- Date: Thu, 19 Dec 2002 11:18:27 -0700 (MST)
- To: ietf-http-wg@w3.org
Hi there, RFC 2616 has the following requirement in section 14.24 "If-Match": The meaning of "If-Match: *" is that the method SHOULD 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 MUST NOT be performed if the representation does not exist. The SHOULD part is clear. I am not sure I understand the intent and implications of the MUST part. It says "if the representation does not exist". What representation? The one "selected by the origin server"? Well, one cannot select something that does not exist! I assume that the following wording would reflect the intent better: The meaning of "If-Match: *" is that the method SHOULD be performed if the origin server (or a cache) can select a representation, and MUST NOT be performed if no representation can be selected. The above wording seems to imply that only origin servers should be subject to the MUST part of the requirement because a cache cannot know whether the origin server has selectable representations that are not currently cached. In other words, a cache should never reply with 412 (Precondition Failed) to an "If-Match: *" request for a Vary-ed resource, the cache should forward the request to the server instead. Moreover, a cache should never reply with 412 (Precondition Failed) to any If-Match request for a Vary-ed resource with no matching representation cached, because the cache cannot know whether a matching representation is available on the server. Can the author of the above RFC paragraph (or anybody who cares) confirm my understanding, please? Thank you, Alex. -- | HTTP performance - Web Polygraph benchmark www.measurement-factory.com | HTTP compliance+ - Co-Advisor test suite | all of the above - PolyBox appliance
Received on Thursday, 19 December 2002 13:18:30 UTC