...
If any of the entity tags match the primary UUID of the object that would have been is returned in the response to a similar GET request (without the If-Match header) on that resource or if "*" is given, Swarm performs the requested method as if the If-Match header field did not exist. If the request results in anything other than a 2xx status without the If-Match header field, the If-Match header will be ignored.
...
If any of the entity tags match the primary object UUID that would have been is returned in the response to a similar GET request (without the If-None-Match header) on that object or if "*" is given and the object does exist, Swarm will not perform the requested method. If the request method was GET or HEAD, Swarm will respond with a 304 Not Modified response, including a current ETag header for the object. For all other request methods, Swarm will respond with a response of 412 Precondition failed with the same current ETag as the GET or HEAD response. If none of the previously recorded and supplied entity tags match, the object was modified. As a result, the requested method will proceed as if the If-None-Match header field did not exist.
...
If a client has a partial copy of an object in its cache and wishes to have an up-to-date copy of the entire object in its cache, it could use the Range request-header with a conditional GET using either or both of If-Unmodified-Since and If-Match headers. If the condition fails because an aliased object was updated, the client would have to must make a second request to obtain the entire current object. The If-Range header allows a client to "short-circuit" the second request. Informally, its meaning is "if the object is unchanged, send me the part(s) that I am missing; otherwise, send me the entire object."
...