HTTP Status Codes

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=86400

Why 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.