HTTP 304 Not Modified indicates that the resource has not been modified since the version specified by the If-Modified-Since or If-None-Match request headers. The server returns no body, telling the client to use its cached copy. This is a key part of HTTP caching.
304 Not ModifiedGET /index.html HTTP/1.1
Host: www.example.com
User-Agent: curl/8.6.0
If-None-Match: "33a64df551425fcc55e4d42a148795d9"
If-Modified-Since: Mon, 23 Feb 2026 12:00:00 GMTHTTP/1.1 304 Not Modified
ETag: "33a64df551425fcc55e4d42a148795d9"
Cache-Control: max-age=3600
Date: Sat, 28 Feb 2026 09:00:00 GMT304 is a healthy caching response that saves bandwidth. It means your cache is working correctly.
If you need to bypass the cache, send a request without conditional headers.
curl -H 'Cache-Control: no-cache' https://example.com/resource
Verify the server returns proper ETag or Last-Modified headers for caching to work correctly.
curl -I https://example.com/resource
The browser sent conditional headers (If-Modified-Since or If-None-Match) and the server confirmed the cached version is still valid.
A CDN is revalidating its cached content with the origin server.
| Specification | Section |
|---|---|
| HTTP Semantics | RFC 9110 §15.4.5 |
This reference was compiled from official RFCs, protocol specifications, and hands-on troubleshooting experience. AI tools were used primarily for formatting and organizing the content on the page.