Che cos'è una risposta 304 Not Modified?
Il codice di risposta del server HTTP 304 Not Modified indica che la risorsa richiesta non è stata modificata dall'ultima volta che è stata caricata, il che significa che non è necessario trasferirla nuovamente. Per i browser, ciò significa che la versione in cache della risorsa può essere mostrata all'utente. Per i crawler, come Googlebot, significa che non c'è bisogno di rianalizzare la pagina perché non è cambiata.
Come funziona
Ecco una semplice spiegazione di come funziona la risposta 304 Not Modified:
-
Richiesta iniziale Quando il client (browser o crawler) richiede per la prima volta una risorsa al server Web, il server invia la risorsa richiesta con un codice HTTP 200 OK, insieme al suo codice hash, chiamato ETag. Il client registra anche l'ora in cui ha richiesto la pagina/risorsa.
-
Richieste successive Quando il client richiede nuovamente la risorsa, il server controlla le intestazioni
If-None-Match
e/oIf-Modified-Since
del client. Questa è nota come richiesta HTTP condizionale.If-None-Match
contiene l'ETag (codice hash del contenuto). Se corrisponde al valore sul server, indica che il contenuto non è cambiato e non è necessario caricarlo di nuovo (quando il contenuto cambia, cambia anche il suo codice hash).If-Modified-Since
contiene la data e l'ora dell'ultima richiesta del contenuto da parte del client. Se il server vede che il contenuto non è cambiato da questa data, non è necessario inviare la risorsa al client.
-
Risposta del server In entrambi i casi, se il contenuto non è stato modificato, il server risponde con il codice HTTP 304.
Quando si usano sia If-None-Match
che If-Modified-Since
, If-None-Match
ha la precedenza su If-Modified-Since
.
Comportamento di browser e crawler
Quando il browser riceve il codice HTTP 304 Not Modified dal server, mostrerà all'utente la versione memorizzata nella cache, rendendolo uno dei codici di reindirizzamento lato client. Per i crawler, ricevere una risposta 304 significa evitare di scaricare nuovamente lo stesso contenuto, conservando larghezza di banda e risorse.
Perché il codice di risposta 304 è importante?
Per i siti web di piccole dimensioni, i vantaggi della cache forniti dal codice HTTP 304 potrebbero non essere così significativi. Tuttavia, per i siti web di grandi dimensioni, il codice di risposta 304 offre vantaggi sostanziali:
- Ottimizzazione delle prestazioni Sfruttando il contenuto della cache, i browser possono caricare le pagine più velocemente per gli utenti, migliorando l'esperienza complessiva dell'utente.
- Gestione del crawl budget Per i siti di grandi dimensioni, la gestione del crawl budget è fondamentale. Il crawler di Google non ricrea le pagine che non sono state modificate, consentendogli di concentrarsi sui contenuti nuovi e aggiornati. Ciò contribuisce a garantire che i contenuti freschi vengano indicizzati in modo più efficiente.
Migliori pratiche per l'utilizzo di 304 non modificato
- Impostare intestazioni di cache adeguate Assicurarsi che il server sia configurato per inviare intestazioni
ETag
eLast-Modified
appropriate. - Monitorare l'efficienza della cache Controllare regolarmente i log del server per verificare la frequenza con cui vengono emesse le risposte 304 e regolare le politiche di caching in base alle necessità.
- Ottimizzare la distribuzione dei contenuti Utilizzare reti di distribuzione dei contenuti (CDN) che supportano meccanismi di caching efficienti per ridurre la latenza e migliorare i tempi di caricamento.
Per informazioni più dettagliate sui codici di stato HTTP e sulle migliori pratiche per le prestazioni web e la SEO, consultare fonti autorevoli come Mozilla Developer Network (MDN) e Google's Web Fundamentals.