Error Codes Wiki

HTTP 304 Not Modified — What It Means & How to Fix It

Warning3xx redirection

About HTTP 304 Not Modified

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. This guide covers everything you need to know about this topic, including common causes, step-by-step solutions, and answers to frequently asked questions.

Here are the key things to understand: 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.. Understanding these fundamentals will help you diagnose and resolve this issue more effectively.

The most common reasons this occurs include: 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.. Identifying the root cause is the first step toward finding the right solution.

To resolve this, follow these recommended steps: Use the cached version of the resource when you receive a 304.. Ensure your server properly implements ETag and Last-Modified headers.. If you need a fresh copy, clear the cache or omit conditional headers.. Check that your caching headers are configured correctly for your content update frequency.. If these steps do not resolve the issue, consider consulting additional resources or a qualified professional.

This article is part of our HTTP Status Codes collection on Error Codes Wiki. We provide comprehensive, up-to-date information to help you find solutions quickly.

Quick Answer

What does HTTP 304 Not Modified mean?

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.

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

  1. 1Use the cached version of the resource when you receive a 304.
  2. 2Ensure your server properly implements ETag and Last-Modified headers.
  3. 3If you need a fresh copy, clear the cache or omit conditional headers.
  4. 4Check that your caching headers are configured correctly for your content update frequency.

Tags

httpredirectioncachingnot-modifiedetagconditional

Related Items

More in 3xx Redirection

Frequently 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.