Comparison
Conditional requestvsETag
Conditional request
the browser asked whether its copy was still current and got back a 304 with no body at all.
A request carrying a validator from a previously cached response, so the server can answer 304 Not Modified instead of resending the body. It saves the payload but not the round trip, which is why a page full of revalidations still feels slow on a high-latency connection. Assets with a content hash in the name should never reach this path, because they should be cached as immutable instead.
Full entry →ETag
the client sends back the version tag it already has and you answer 304 with no body instead of resending the whole thing.
An opaque version identifier for a response, which clients echo back so the server can answer "unchanged" rather than resend. It saves bandwidth without giving up freshness, because the client still asks every time. The same tag doubles as an optimistic concurrency token on writes via `If-Match`, which is the cheapest way to reject a lost update over HTTP.
Full entry →