If-None-MatchIf-None-Match is a conditional request header where the client sends the ETag of its cached representation, asking the server to return the body only if it differs from that ETag. It is the most precise means of cache revalidation.
In a prior response the server sends an `ETag`, a version fingerprint of the resource. On the next request the client puts that value in If-None-Match, and the server compares it with the current ETag. If they match (unchanged), the server returns 304 Not Modified with no body to save bandwidth; if they differ, it returns 200 OK with a fresh body and new ETag.
On read requests (GET, HEAD) it serves cache revalidation, but on writes (PUT, POST) it means something different. `If-None-Match: *` means 'create only if the resource does not yet exist', enabling safe create-if-absent that prevents a race where two clients create the same resource. If the condition fails, the server returns 412 Precondition Failed.
ETags come in strong validators (exact byte comparison) and weak ones (`W/` prefix, semantically-equivalent). If-None-Match permits weak comparison, so it works well with content negotiation and compressed representations.
If-None-Match: <etag>[, <etag>]* | *e.g. If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"