Codice di Stato 304 - Che cos'è e come risolverlo?
Questo tutorial riguarda i seguenti argomenti:
Il codice di stato 304 “Non modificato” è uno dei codici di stato HTTP di cui probabilmente hai sentito parlare durante la navigazione in Internet. Alcuni codici HTTP sono più popolari e incontrati spesso dai visitatori come il 404 “Not Found” o Errori 504 “Gateway Timeout”. Allo stesso tempo, altri sono nascosti e funzionano in background del tuo browser.
Il codice di stato 304 è uno di questi. Serve nella comunicazione tra server web e client web. Nascosto per l’utente finale, fornisce istruzioni su come caricare le risorse della pagina web.
Detto questo, i codici HTTP vengono spesso scambiati per errori indipendentemente dalla loro natura e non vengono gestiti correttamente, e il codice di stato HTTP 304 non fa eccezione.
Questo articolo chiarirà le cose e fornirà ulteriori informazioni su quale sia lo stato “Non modificato” 304 e su come correggere gli errori causati da esso.
Pertanto, il codice di stato 304 riduce l’utilizzo della larghezza di banda indicando ai browser quando caricare il contenuto memorizzato nella cache e quando scaricare nuove risorse.
Come funziona il codice di stato 304
L’esempio seguente descrive una tipica interazione tra un server web e un browser che coinvolge un codice di risposta 304:
- Apri un nuovo sito web: Quando visiti un sito web per la prima volta, il browser invia una richiesta HTTP GET al server per la risorsa desiderata.
- Il server restituisce l’ETag o header Last-Modified: il server elabora la richiesta HTTP e risponde con la risorsa insieme a headers di risposta HTTP che includono “ETag” e/o “Last-Modified.” Questi header rappresentano lo stato corrente o la versione della risorsa.
- Il tuo browser memorizza queste intestazioni e scarica il contenuto: Il browser memorizza gli “ETag” e/o header “Last-Modified” insieme alla risorsa nella sua cache. Il contenuto è ora memorizzato nella cache del tuo dispositivo.
- La prossima volta che visiterai il sito web: quando lo visiti di nuovo, o il browser ha bisogno di riconvalidare il contenuto della cache, invia una richiesta GET condizionale. Questa richiesta include l’header If-None-Match con il valore ETag precedentemente memorizzato e/o l’header If-Modified-Since con il valore precedentemente memorizzato in Last-Modified date.
- Il server valuta le intestazioni: Il server riceve la richiesta condizionale e controlla lo stato corrente della risorsa rispetto a “ETag” e / o la data per “Last-Modified ” fornita dal browser.
- Il server risponde in due modi diversi in base alla valutazione:
- Se la data “ETag” o “Last-Modified” corrente corrisponde ai valori forniti dal browser (il che significa che il contenuto non è cambiato), il server risponde con un codice di stato “304 Not Modified”. Il browser continua a utilizzare il contenuto memorizzato nella cache.
- Se la data corrente “ETag” o “Last-Modified” non corrisponde ai valori forniti (il contenuto è cambiato), il server risponde con un codice di stato `200 OK`. Quindi, invia la nuova versione della risorsa. Il browser aggiorna la sua cache per salvare le pagine web nella loro ultima versione, ETag e/o l’header HTTP `Last-Modified`.
Qual è la differenza tra i codici di stato HTTP 304 e 200?
I codici di stato 200 OK e 304 Non modificato sono due possibili risultati delle stesse richieste del cliente inviate a un server web. Sebbene entrambi i codici rappresentino un’interazione di successo, forniscono istruzioni diverse sulla gestione della risorsa richiesta.
- Il codice di risposta 200 OK contiene il corpo della risorsa richiesta (documento HTML, file JSON, immagine, ecc.)
- La risposta 304 Not Modified non ha corpo e contiene solo header. Questi informano i browser che hanno una versione aggiornata della risorsa che hanno richiesto e possono utilizzare la loro versione della cache memorizzata.
- Il codice di risposta 200 ignora le risorse memorizzate nella cache del browser e fornisce l’ultima versione della risorsa.
Come risolvere il codice di stato HTTP 304
Una risorsa di cache obsoleta o una configurazione errata del browser possono impedire il caricamento dei dati di navigazione memorizzati nella cache. In questo caso, potresti imbatterti in errori mentre visiti le pagine web.
Pertanto, dovresti concentrarti sulla risoluzione di questo tipo di problemi invece di provare a risolvere ogni codice HTTP 304 Non Modificato.
Di seguito, troverai le soluzioni più comuni ed efficaci.
Svuota la cache del browser
Spesso, dati del browser obsoleti o corrotti possono influire negativamente sul modo in cui il browser comunica con un server web. Di conseguenza, possono sputare diversi tipi di errori.
In molti casi, svuotare la cache del browser risolve tali errori. Segui i passaggi seguenti per eliminare la cache su Chrome.
- Apri il menu kebab (tre puntini) e seleziona Cancella dati di navigazione.
- Per eliminare immagini e file memorizzati nella cache, seleziona la casella Immagini e file memorizzati nella cache. Facoltativamente, puoi anche eliminare i cookie e la cronologia di navigazione.
- Conferma la tua scelta cliccando Cancella dati.
- Ricarica la pagina richiesta per vedere se l’errore è stato risolto.
Svuotare la cache DNS
Il tuo computer memorizza anche la cache DNS, che consiste nelle impostazioni DNS dei siti web visitati in precedenza. Una cache DNS obsoleta può causare ogni tipo di problema quando si visitano le pagine web.
Svuota la cache DNS per eliminare le informazioni DNS scadute o corrotte. Per farlo, dovrai utilizzare il Terminal su Mac o Linux e il Prompt dei comandi su Windows.
Prendiamo ad esempio macOS. Per svuotare la cache DNS, digita il seguente comando nel Terminale.
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Dopo aver eseguito il comando, ti verrà richiesto di fornire la password di amministratore (sudo).
Segui le guide seguenti per istruzioni dettagliate su come svuotare la cache DNS su diversi sistemi operativi (SO).
- Come svuotare la cache DNS su Windows
- Come svuotare la cache DNS su Mac
- Come cancellare la cache DNS su Linux
Disabilita le estensioni del browser
Le estensioni del browser sono ottime per estendere le funzionalità di base di tutti i principali browser. Ma in rare occasioni, possono impedire il caricamento corretto della risorsa memorizzata nella cache.
Pertanto, è possibile disattivare le estensioni del browser per verificare se causano disturbi.
Segui i passaggi riportati di seguito per disattivare le estensioni di Chrome. Il processo su altri browser è simile.
- Apri il menu kebab > Estensioni > Gestisci Estensioni.
- Fai click sul cursore ON/OFF per disattivare un’estensione. In alternativa, puoi eliminare le estensioni non utilizzate o obsolete con il pulsante Rimuovi.
- Successivamente, visita di nuovo la pagina web che ha prodotto errori. Se l’errore persiste, ripeti il processo fino a quando la pagina non viene caricata correttamente.
Controlla i Reindirizzamenti nel file .htaccess
Istruzioni di reindirizzamento errate possono impedire al tuo browser di elaborare correttamente un codice di risposta HTTP 304 da un sito web. Pertanto, se sei il proprietario del sito web, dovresti ispezionare il file di configurazione del server contenente le direttive di reindirizzamento.
Questo file è .htaccess in Apache, l’applicazione web server più popolare. Ecco come ispezionarlo.
- Accedi ai file del tuo sito web tramite FTP o File Manager. Se sei un utente SiteGround, vai su Site Tools > Sito > Gestione File.
- Apri la directory principale del tuo sito web. Di solito, è tuodominio.com/public_html.
- Trova il file .htaccess e modificalo.
- Cerca eventuali regole di reindirizzamento. Di solito sono posizionati all’inizio del file .htaccess. Rimuovile per verificare se ti impediscono di caricare il sito web.
Cambia i server DNS
I computer ottengono gli indirizzi IP dei siti web dai server DNS. Se la comunicazione del server DNS è interrotta, il tuo computer potrebbe non gestire correttamente un codice di stato 304. Potrebbe essere causato da un indirizzo del server DNS errato o da un problema temporaneo nel server DNS designato.
Cambia i server DNS predefiniti con altri server DNS pubblici. Ad esempio, puoi passare ai server DNS di Google se il tuo ISP utilizza quelli personalizzati.
Server DNS di Google
8.8.8.8
8.8.4.4
Il modo esatto di cambiare i server DNS dipende dal tuo sistema operativo (SO). Di seguito, troverai i passaggi per Windows e Mac.
Mac
- Apri Impostazioni di Sistema > Rete.
- Seleziona la tua rete attiva e clicca su Dettagli.
- Apri la scheda DNS.
- Clicca sul segno +.
- Digita il nuovo indirizzo del server DNS nel campo evidenziato.
- Premi OK.
- Ricarica la pagina problematica per vedere se l’errore è scomparso.
Windows
- Apri il menu Windows.
- Digita ” pannello di controllo” nella barra di ricerca.
- Clicca sull’icona del Pannello di Controllo che appare come primo risultato di ricerca.
- Seleziona Rete e Internet > Centro connessioni di rete e condivisione.
- Clicca sulla tua rete attiva.
- Apparirà una finestra pop-up. Premi il pulsante Proprietà.
- Evidenzia la voce Internet Protocol Version 4 (TCP/IPv4) e seleziona Proprietà.
- Scegli l’opzione Utilizza i seguenti indirizzi server DNS.
- Digita l’indirizzo del server DNS primario nel campo Server DNS preferito.
- Inserisci l’indirizzo del server DNS secondario nel campo Server DNS alternativo.
- Conferma le impostazioni facendo click su OK.
Il codice di stato HTTP 304 “Non modificato” è errato?
No, il codice di stato HTTP 304 “Non modificato” non è un codice errato. Non indica nulla di sbagliato nel tuo browser o nel server web di un sito. In effetti, non rappresenta alcun problema e non è un codice di errore.
Al contrario, il suo scopo è quello di migliorare l’esperienza utente per i visitatori del sito web. Invece di scaricare i contenuti ogni volta, i browser web possono utilizzare i dati memorizzati nella cache per rendere più veloci le pagine web. Pertanto, il codice di stato 304 può risparmiare l’utilizzo della larghezza di banda, tempo e risorse del server.
Detto questo, molti tutorial online trattano lo stato 304 come un codici di errore e si concentrano sul risolverlo come se l’obiettivo fosse quello di sbarazzarsi di esso. Questo non è giusto e non dovresti mirare a eliminare il codice di stato 304. In effetti, è probabile che non lo vedrai affatto sullo schermo.
Tuttavia, diversi problemi relativi alla cache e configurazioni errate del browser / dispositivo, indirettamente correlati al codice di stato HTTP 304, possono ostacolare la connessione a siti web specifici.
Conclusione
Il codice di stato HTTP 304 è parte integrante del meccanismo di caching del web che generalmente migliora la velocità e l’efficienza di navigazione. Sebbene non sia intrinsecamente problematico, configurazioni errate possono causare problemi con il contenuto non aggiornato correttamente.
Seguendo i metodi di risoluzione dei problemi descritti sopra, è possibile risolvere la maggior parte dei problemi relativi al codice di stato 304 e assicurarsi di visualizzare il contenuto web più aggiornato.