304 vs 404 — Conditional Retrieval
A conditional GET or HEAD using If-None-Match or If-Modified-Since reaches validator evaluation for an existing target.
Implemented
A conditional GET or HEAD using If-None-Match or If-Modified-Since reaches validator evaluation for an existing target. The server identifies the selected representation, evaluates the condition, and returns 304 Not Modified when the condition evaluates false. A nonexistent target terminates at 404 before reaching conditional retrieval semantics.
- What leaks: 304 confirms the target has a current selected representation that the server evaluated against the supplied validator.
If-None-Matchprovides the strongest normative path — RFC 9110 mandates 304 for GET/HEAD when the condition evaluates false (MUST-level).If-Modified-Sinceis weaker (SHOULD-level). The 304 response carries no body, making it bandwidth-efficient for enumeration.