@Header(value="If-None-Match") public class IfNoneMatch extends BasicEntityTagArrayHeader
Allows a 304 Not Modified to be returned if content is unchanged.
If-None-Match: "737060cd8c284d8af7ad3082f209582d"
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, unless required to do so because the resource's modification date fails to match that supplied in an If-Modified-Since header field in the request. Instead, if the request method was GET or HEAD, the server SHOULD respond with a 304 (Not Modified) response, including the cache- related 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 entities tags match. The weak comparison function can only be used with GET or HEAD requests.
If none of the entity tags match, then the server MAY perform the requested method as if the If-None-Match header field did not exist, but MUST also ignore any If-Modified-Since header field(s) in the request. That is, if no entity tags match, then the server MUST NOT return a 304 (Not Modified) response.
If the request would, without the If-None-Match header field, result in anything other than a 2xx or 304 status, then the If-None-Match header MUST be ignored. (See section 13.3.4 for a discussion of server behavior when both If-Modified-Since and If-None-Match appear in the same request.)
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. This feature is intended to 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: *
The result of a request having both an If-None-Match header field and either an If-Match or an If-Unmodified-Since header fields is undefined by this specification.
Constructor and Description |
---|
IfNoneMatch(Object value)
Constructor.
|
IfNoneMatch(String value)
Constructor
|
Modifier and Type | Method and Description |
---|---|
static IfNoneMatch |
of(Object value)
Convenience creator.
|
static IfNoneMatch |
of(Supplier<?> value)
Convenience creator using supplier.
|
asEntityTags, getValue, of, of
assertName, assertValue, canCast, cast, eqIC, equals, getElements, getName, getRawValue, hashCode, isSupplier, of, ofPair, toString, unwrap
public IfNoneMatch(Object value)
value
- The header value.
public IfNoneMatch(String value)
value
- The header value.public static IfNoneMatch of(Object value)
value
- The header value.
EntityTag
objects.
IfNoneMatch
object.public static IfNoneMatch of(Supplier<?> value)
Header value is re-evaluated on each call to BasicEntityTagArrayHeader.getValue()
.
value
- The header value supplier.
EntityTag
objects.
IfNoneMatch
object.Copyright © 2016–2020 The Apache Software Foundation. All rights reserved.