HTTP 304 Not Modified — What It Means & How to Fix It
Warning3xx redirection
Overview
The HTTP 304 Not Modified status code indicates the resource has not been modified since the version specified by the request headers, so the client can use its cached copy.
Key Details
- This status code is used for conditional requests with If-Modified-Since or If-None-Match headers.
- It saves bandwidth by not retransmitting the resource when the client already has a current copy.
- The response must not contain a body.
- It is a key part of HTTP caching mechanisms.
- The client should use the cached version of the resource.
Common Causes
- The client sent a conditional GET with If-Modified-Since and the resource has not changed.
- The client sent If-None-Match with an ETag that still matches the current resource.
- Browser cache validation determined the cached copy is still fresh.
Steps
- 1Use the cached version of the resource when you receive a 304.
- 2Ensure your server properly implements ETag and Last-Modified headers.
- 3If you need a fresh copy, clear the cache or omit conditional headers.
- 4Check that your caching headers are configured correctly for your content update frequency.
Tags
httpredirectioncachingnot-modifiedetagconditional
Related Items
More in 3xx Redirection
http-300-multiple-choicesHTTP 300 Multiple Choices — What It Means & How to Fix It
Warninghttp-301-moved-permanentlyHTTP 301 Moved Permanently — What It Means & How to Fix It
Warninghttp-302-foundHTTP 302 Found — What It Means & How to Fix It
Warninghttp-303-see-otherHTTP 303 See Other — What It Means & How to Fix It
Warninghttp-305-use-proxyHTTP 305 Use Proxy — What It Means & How to Fix It
Warninghttp-307-temporary-redirectHTTP 307 Temporary Redirect — What It Means & How to Fix It
WarningFrequently Asked Questions
It means the resource has not changed since it was last requested. The client should use its cached copy instead of downloading the resource again.