redirect RFC 9110
HTTP 304 Not Modified
The cached copy the client already has is still valid — no body sent.
What it means
The client sent a conditional request with `If-None-Match` (ETag) or `If-Modified-Since`. The server checked, the resource hasn't changed, and it's telling the client to use its cached copy. No body is sent — this is a bandwidth optimization. Very common on static assets like CSS, JS, images.
When servers send it
- •Any conditional GET where the resource matches the cache validator
- •Browser revalidates a stale-cached resource on page reload
What the client does
Uses its cached copy instead of downloading. Renders it as if the response was 200.
When you see it
- •Normal cache revalidation — expected
Similar codes
200 OK success
The request succeeded and the response body contains the requested data.
301 Moved Permanently redirect
The resource has permanently moved to a new URL — clients and search engines should update their references.
302 Found redirect
Resource is temporarily at a different URL — do not update bookmarks or search engine indexes.
307 Temporary Redirect redirect
Same as 302 but explicitly preserves the HTTP method — POST stays POST.
308 Permanent Redirect redirect
Same as 301 but explicitly preserves the HTTP method — POST stays POST.
← All HTTP status codes · HTTP status cheat sheet · HTTP headers reference