Inizio
/
Assistenza sito web
/
Codice di Stato 304 - Che cos'è e come risolverlo?

Codice di Stato 304 - Che cos'è e come risolverlo?

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.

Il codice di stato HTTP 304, noto anche come “Non modificato”, è una risposta che informa un client (browser) che la risorsa richiesta non è cambiata dall’ultimo accesso. Invece di inviare la risorsa di nuovo, il server indica al browser di utilizzare la versione memorizzata nella cache che già memorizza.

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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`.
Come funziona il codice di stato 304

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.

  1. Apri il menu kebab (tre puntini) e seleziona Cancella dati di navigazione.
    Come aprire le opzioni Cancella dati di navigazione in Google Chrome
  2. 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.
  3. Conferma la tua scelta cliccando Cancella dati.
    Opzioni per Cancella dati di navigazione in Google Chrome
  4. 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).

NOTA! Devi avere i privilegi di amministratore (sudo) per svuotare la cache DNS su entrambi i sistemi operativi (SO).

Segui le guide seguenti per istruzioni dettagliate su come svuotare la cache DNS su diversi sistemi operativi (SO).

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.

  1. Apri il menu kebab > Estensioni > Gestisci Estensioni.
    Come aprire le Estensioni in Google Chrome
  2. Fai click sul cursore ON/OFF per disattivare un’estensione. In alternativa, puoi eliminare le estensioni non utilizzate o obsolete con il pulsante Rimuovi.
    Disabilitare le estensioni in Google Chrome
  3. 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.

  1. Accedi ai file del tuo sito web tramite FTPFile Manager. Se sei un utente SiteGround, vai su Site Tools > Sito > Gestione File.
  2. Apri la directory principale del tuo sito web. Di solito, è tuodominio.com/public_html.
    Come accedere alla cartella principale di un sito web in Site Tools
  3. Trova il file .htaccess e modificalo.
    Modificare un file .htaccess
  4. 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.
    Reindirizzamenti in .htaccess

IMPORTANTE! Crea una copia di backup del tuo file .htaccess prima di modificarlo. In questo modo, puoi ripristinarlo in sicurezza se elimini una regola critica.

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

  1. Apri Impostazioni di Sistema > Rete.
  2. Seleziona la tua rete attiva e clicca su Dettagli.
    Impostazioni di rete su Mac
  3. Apri la scheda DNS.
  4. Clicca sul segno +.
  5. Digita il nuovo indirizzo del server DNS nel campo evidenziato.
  6. Premi OK.
    Cambiare i server DNS su Mac
  7. Ricarica la pagina problematica per vedere se l’errore è scomparso.

Windows

  1. Apri il menu Windows.
  2. Digita ” pannello di controllo” nella barra di ricerca.
  3. Clicca sull’icona del Pannello di Controllo che appare come primo risultato di ricerca.
  4. Seleziona Rete e Internet > Centro connessioni di rete e condivisione.
    Impostazioni di rete e Internet in Windows
  5. Clicca sulla tua rete attiva.
  6. Apparirà una finestra pop-up. Premi il pulsante Proprietà.
    Proprietà di rete in Windows
  7. Evidenzia la voce Internet Protocol Version 4 (TCP/IPv4) e seleziona Proprietà.
  8. Scegli l’opzione Utilizza i seguenti indirizzi server DNS.
  9. Digita l’indirizzo del server DNS primario nel campo Server DNS preferito.
  10. Inserisci l’indirizzo del server DNS secondario nel campo Server DNS alternativo.
  11. Conferma le impostazioni facendo click su OK.
    Cambiare i server DNS in Windows

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.

Condividi questo articolo