HTTP 304 Not Modified indicates the client must use a different URI to complete the intent. Redirect correctness depends on Location and caching headers, and different clients handle redirects differently—especially for non-GET requests.
Try it (live endpoint)
Response includes the status code, standard headers (including Content-Type), and a small diagnostic JSON body describing the request and returned status.
Indicates that the resource has not been modified since the version specified by the request headers (If-None-Match or If-Modified-Since). The client should use its cached copy.
What it guarantees
A different URI is involved to complete the intent.
The representation has not changed since the client’s validator.
What it does NOT guarantee
All clients will automatically follow the redirect.
The redirect target is safe to cache unless headers allow it.
A client will receive a response body.
When to use this status
GET is conditional (If-None-Match / If-Modified-Since) and content is unchanged.
CDN/origin revalidation where cached content remains valid.
Bandwidth-sensitive clients using validators for large representations.
When NOT to use this status (common misuses)
Redirecting without a stable Location target.
Clients fail to follow; crawlers lose canonical signals.
Using 301/302 for non-GET methods without understanding method rewriting.
Clients can drop bodies or change methods, causing data loss and client bugs.
DEPRECATED. Originally indicated that the requested resource must be accessed through a proxy. Deprecated in RFC 7231 due to security concerns and should not be used.