DevToolPal
IT
3xx Reindirizzamento

304 Not Modified

Non modificato

Cosa significa

La copia in cache del client è ancora valida, quindi il server non invia il corpo. Risponde a una richiesta condizionale con If-None-Match o If-Modified-Since.

Cause comuni

  • L'ETag in If-None-Match corrisponde alla versione attuale
  • La risorsa non è cambiata da If-Modified-Since
  • Un browser che riconvalida una risorsa in cache

Come risolvere

Lato client o visitatore

Usa il corpo in cache. Se il contenuto sembra vecchio, il validatore potrebbe essere sbagliato; forza il ricaricamento o controlla la generazione degli ETag.

Lato gestore del sito o dell’API

Genera ETag stabili (identici su tutti i server dietro un load balancer) e invia gli stessi header di cache che invieresti con 200.

Risposta di esempio

HTTP/1.1
HTTP/1.1 304 Not Modified
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
ETag: "33a64df5"
Cache-Control: max-age=3600

Specifica

RFC 9110 §15.4.5

Domande frequenti

› Il 304 è un errore?

No. Fa risparmiare banda dicendo al client che la sua cache è aggiornata.

› Perché gli utenti vedono file vecchi dopo un deploy?

Gli header di cache permettono copie obsolete. Usa nomi di file con impronta per le risorse e un max-age breve con riconvalida per l'HTML.