14.26 If-None-Match
Connected: An Internet Encyclopedia
14.26 If-None-Match
Up:
Connected: An Internet Encyclopedia
Up:
Requests For Comments
Up:
RFC 2068
Up:
14 Header Field Definitions
Prev: 14.25 If-Match
Next: 14.27 If-Range
14.26 If-None-Match
14.26 If-None-Match
The If-None-Match request-header field is used with a method to make
it conditional. A client that has one or more entities previously
obtained from the resource can verify that none of those entities is
current by including a list of their associated entity tags in the
If-None-Match header field. The purpose of this feature is to allow
efficient updates of cached information with a minimum amount of
transaction overhead. It is also used, on updating requests, to
prevent inadvertent modification of a resource which was not known to
exist.
As a special case, the value "*" matches any current entity of the
resource.
If-None-Match = "If-None-Match" ":" ( "*" | 1#entity-tag )
If any of the entity tags match the entity tag of the entity that
would have been returned in the response to a similar GET request
(without the If-None-Match header) on that resource, or if "*" is
given and any current entity exists for that resource, then the
server MUST NOT perform the requested method. Instead, if the request
method was GET or HEAD, the server SHOULD respond with a 304 (Not
Modified) response, including the cache-related entity-header fields
(particularly ETag) of one of the entities that matched. For all
other request methods, the server MUST respond with a status of 412
(Precondition Failed).
See section 13.3.3 for rules on how to determine if two entity tags
match. The weak comparison function can only be used with GET or HEAD
requests.
If none of the entity tags match, or 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.
If the request would, without the If-None-Match header field, result
in anything other than a 2xx status, then the If-None-Match header
MUST be ignored.
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.43)
exists, and SHOULD be performed if the representation does not exist.
This feature may be useful in preventing races between PUT
operations.
Examples:
If-None-Match: "xyzzy"
If-None-Match: W/"xyzzy"
If-None-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
If-None-Match: W/"xyzzy", W/"r2d2xxxx", W/"c3piozzzz"
If-None-Match: *
Next: 14.27 If-Range
Connected: An Internet Encyclopedia
14.26 If-None-Match
|