Not Modified
Redirection (3xx)The 304 Not Modified status code indicates that the requested resource has not been modified since the version specified by the client's conditional headers (If-Modified-Since or If-None-Match). The server does not return the resource body, and the client should use its cached copy. This mechanism saves bandwidth and improves page load times.
What is HTTP 304 Not Modified?
HTTP 304 Not Modified is a redirection (3xx) status code. The 304 Not Modified status code indicates that the requested resource has not been modified since the version specified by the client's conditional headers (If-Modified-Since or If-None-Match). The server does not return the resource body, and the client should use its cached copy. This mechanism saves bandwidth and improves page load times. Common causes include browser has a valid cached version of the resource and cdn cache validation. This response indicates the server processed the request as expected.
Example Response
HTTP/1.1 304 Not Modified ETag: "abc123" Cache-Control: max-age=3600
Common Causes
- • Browser has a valid cached version of the resource
- • CDN cache validation
- • API response has not changed since last request
- • ETag or Last-Modified conditional request
What to Know
- 1. 304 is a success indicator — no fix needed
- 2. If you always get 304 but expect new content, check your cache headers
- 3. Clear browser cache or disable caching to force a full download
- 4. Verify ETag and Last-Modified headers are updating correctly
Frequently Asked Questions
How does the 304 mechanism work?
The client sends a conditional request with If-Modified-Since (timestamp) or If-None-Match (ETag). If the resource has not changed, the server responds with 304 and no body. The client uses its cached version, saving bandwidth.
Does a 304 response include a body?
No. A 304 response must not contain a body. It only includes headers (ETag, Cache-Control, etc.) to confirm the cached version is still valid.
How does this improve performance?
Instead of downloading the full resource again, the server confirms the cached version is current with a small header-only response. For large files, this dramatically reduces bandwidth and load times.