Skip to content
3xx Redirection

304 Not Modified

The cached copy the client already holds is still fresh, so no body is sent.

What causes it

  • The client sent `If-None-Match` with an ETag that still matches.
  • The client sent `If-Modified-Since` and the resource has not changed.

How to fix it

  • A 304 must not have a body, and must repeat the headers that would have been sent with a 200 (notably `ETag` and `Cache-Control`).
  • Seeing stale content? Your ETag is probably not changing when the content does — hash the body, do not use the mtime of a rebuilt file.

At a glance

Class
3xx Redirection
Reference
RFC 9110 §15.4.5
Standardised
Yes
Retry the request?
No — fix the request

Other 3xx redirection codes

Back to the full HTTP status code reference