Free tools

HTTP 304 Not Modified

The cached copy is still valid. Free reference, no signup.

304 Not Modified

MeaningThe cached copy is still valid.
WhenThe client sent If-None-Match or If-Modified-Since and nothing changed.
CausesConditional requests and CDN caching.
FixUse the cached body. A 304 is a successful cache hit.
RetryDo not retry.
Alert?No. The cache did its job.

Runs in your browser. Nothing you enter is stored.

Most 304s are not an incident

The cache did its job.

curl -sS -X POST https://api.trigv.com/v1/events \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $TRIGV_API_KEY" \
  -d '{"channel":"ops","title":"HTTP 304","level":"warning"}'

How to use it

  1. Read what 304 means before changing a retry loop.
  2. Check the common causes against the response body and the server log.
  3. Follow the retry note. Retrying a 400 with the same body will fail again.
  4. Alert only in the cases the verdict describes.

About this tool

HTTP 304 Not Modified means The cached copy is still valid. Servers send it when The client sent If-None-Match or If-Modified-Since and nothing changed.

Common causes: Conditional requests and CDN caching. The practical fix is: Use the cached body. A 304 is a successful cache hit.

Retry: Do not retry.

Alert on it? No. The cache did its job.

Trigv is a push for the moment a status starts mattering, not a log of every response. If the code is one you should hear about, the snippet posts a single event with level error or warning. The status page itself does not call your API.

Questions

What is HTTP 304?

The cached copy is still valid.

Should the client retry?

Do not retry.

Should I alert on it?

No. The cache did its job.

How is this different from reading the spec?

The page adds a plain retry note and an alert verdict for people running the service, not only for people parsing the response.