304 Not Modified
The cached copy is still good: in response to a conditional request, the server sends no body and the client reuses what it already has — a major bandwidth saver.
What it means
When a client revalidates with If-None-Match (an ETag) or If-Modified-Since, a server that finds the resource unchanged returns 304 Not Modified with no body. The client then serves its cached copy. This turns a full download into a tiny headers-only exchange.
HTTP EXCHANGE
> GET /style.css HTTP/1.1
> If-None-Match: "a1b2c3"
< HTTP/1.1 304 Not Modified
< ETag: "a1b2c3"
< Cache-Control: max-age=86400Why it matters
- It slashes bandwidth and latency for unchanged assets by skipping the body while confirming freshness.
- Correct ETag/Last-Modified handling is central to efficient browser and CDN caching.
Common mistakes
- Serving a 304 with a body, or with headers that contradict the cached representation.
- Weak or unstable ETags that change on every request, defeating revalidation.
How WebInspect checks this
- WebInspect reports ETag, Last-Modified and Cache-Control and evaluates whether conditional requests can revalidate efficiently.