TrueURL

304 Not Modified

Risposta a un GET o HEAD condizionale: la copia in cache del client è ancora valida, quindi il server non invia il corpo e la copia viene riutilizzata.

Frase di stato
Not Modified
Redirect
No
Memorizzabile in cache di default
No

304 Not Modified risponde a una richiesta GET o HEAD condizionale, cioè con If-None-Match o If-Modified-Since, quando la condizione mostra che la copia memorizzata dal client è ancora aggiornata. Invece di inviare di nuovo la risorsa, il server risponde 304 e il client usa la propria copia in cache. Si risparmiano così banda e tempo.

Una risposta 304 non ha mai un corpo: termina con la riga vuota dopo le intestazioni. Il server deve inviare, tra le intestazioni Cache-Control, Content-Location, Date, ETag, Expires e Vary, quelle che sarebbero state presenti in una risposta 200, così che le cache possano aggiornare la risposta memorizzata.

Anche se appartiene alla classe 3xx, il 304 non è un reindirizzamento. Non c’è alcuna Location e il client resta sullo stesso URL. Un client che riceve un 304 senza aver inviato una richiesta condizionale sta comunicando con un server difettoso.

Esempio di risposta

HTTP
HTTP/1.1 304 Not Modified
Date: Fri, 06 Nov 2026 10:15:32 GMT
ETag: "5f2b-1a3c"
Last-Modified: Wed, 28 Oct 2026 08:02:11 GMT
Cache-Control: public, max-age=600
Vary: Accept-Encoding

SEO e verifica dei redirect

Il 304 aiuta la scansione. I crawler di Google supportano le richieste condizionali, e un 304 comunica a Googlebot che il contenuto non è cambiato dall’ultima scansione. Si risparmiano così capacità di scansione e carico sul server, mentre la pagina resta nell’indice: per questo conviene avere intestazioni ETag o Last-Modified affidabili, soprattutto sui siti di grandi dimensioni.

TrueURL non invia intestazioni condizionali per impostazione predefinita, quindi vedrai 200 e non 304. Per testare la riconvalida, aggiungi in Intestazioni di richiesta personalizzate un’intestazione If-None-Match con l’ETag della pagina.

Cause comuni e casi d’uso

  • Un browser riconvalida una pagina, un’immagine o uno script in cache con If-None-Match, e l’ETag corrisponde ancora.
  • Un crawler o un lettore di feed richiede di nuovo la risorsa con If-Modified-Since e non è cambiato nulla.
  • Dopo un deploy i visitatori vedono contenuti non aggiornati perché il server continua a rispondere 304: i suoi validatori non sono cambiati, per esempio un ETag basato su dimensione e data di modifica del file che il deploy ha lasciato invariate. Assicurati che i validatori cambino ogni volta che cambia il contenuto.

Verifica redirect URL

Scopri tutti i codici di stato restituiti da un URL, salto dopo salto, con la verifica redirect gratuita di TrueURL.