Il codice di stato HTTP Not Modified indica un problema di comunicazione tra il browser di un utente e il server di un sito web. Se voi o i vostri utenti incontrate questo codice di stato sul vostro sito, l’accesso al vostro contenuto potrebbe essere completamente bloccato.

Poiché il problema può trovarsi sul lato server o sul lato client, capire la fonte del problema può richiedere un po’ di lavoro. Fortunatamente, ci sono diverse tecniche infallibili per risolverlo.

In questo articolo, parleremo dei codici di stato HTTP e spiegheremo cos’è il codice di stato HTTP 304. Poi vi guideremo attraverso 6 metodi che voi (o chi visita le vostra pagine) potete usare per risolverlo.

Cominciamo!

Introduzione ai Codici di Stato HTTP

Per capire l’errore HTTP 304, è sicuramente di aiuto una comprensione preventiva dei codici di stato. In parole povere, ogni volta che si fa una richiesta al proprio browser – ad esempio accedendo a un particolare sito web – viene inviato un codice di stato HTTP per lo scambio di informazioni tra il browser e il server.

Ci sono più di 40 diversi codici di stato che possono entrare a far parte di questa comunicazione. Tuttavia, è probabile che ne incontrerete direttamente solo una manciata. Quando vi imbattete in un codice di stato, di solito significa che qualcosa è andato storto.

I codici di stato HTTP si suddividono in cinque categorie, numerate tra 100 e 500. Ogni serie indica un diverso tipo di problema. Ad esempio, i codici di errore che rientrano nel 400, come l’errore “404 Not Found” e ”l’errore 401”, indicano tipicamente che c’è stato un problema nella richiesta e che il sito web o la pagina in questione era irraggiungibile.

D’altra parte, i codici 300 – come il codice di stato HTTP 304 su cui ci concentreremo in questo articolo – sono codici di reindirizzamento. Fanno capire che l’informazione richiesta è stata sostituita temporaneamente o permanentemente con un’altra risorsa.

Quando incontrate uno di questi codici di stato, significa che è necessario intraprendere ulteriori azioni.

Cos’È il Codice di Stato HTTP 304?

HTTP 304, noto anche come “304 Not Modified”, è un codice che comunica al browser che: “The requested resource has not been modified since the last time you accessed it” (“La risorsa richiesta non è stata modificata dall’ultimo accesso”).

L’Internet Engineering Task Force (IETF) definisce il 304 Not Modified come:

Il codice di stato 304 (Not Modified) indica che è stata ricevuta una richiesta condizionale GET o HEAD e che questa avrebbe avuto come risultato una risposta 200 (OK) se non fosse per il fatto che la condizione ha dato false come valore. In altre parole, non c’è bisogno che il server trasferisca una rappresentazione della risorsa di destinazione perché la richiesta indica che il client, che ha reso la richiesta condizionale, ha già una rappresentazione valida; il server sta quindi reindirizzando il client a fare uso di quella rappresentazione memorizzata come se fosse il payload di una risposta 200 (OK).

In sostanza, il server comunica al vostro browser (o a quello del vostro visitatore) che le risorse memorizzate nel browser (nella cache) non sono state modificate dall’ultima volta che avete visitato quella pagina.

A sua volta, il browser recupera una versione salvata della pagina web dalla cache. Lo scopo è quello di migliorare la velocità della pagina e la consegna, evitando che il vostro browser debba scaricare ripetutamente le stesse informazioni.

Guarda la Nostra Video Guida al Codice di Stato 304 Not Modified e a Tutti i Reindirizzamenti 3xx

Capire le Richieste HTTP 304

Quando il browser memorizza una risorsa nella cache, conserva quelle che vengono definite informazioni del “Last Modified Header” (“Header di Ultima Modifica”) che sono state inviate dal server. Se un browser riceve una richiesta per una pagina web di cui ha salvato una copia, ma non sa se ha l’ultima versione, invia al server una richiesta di ‘convalida condizionale’.

Il browser comunica al server la data e l’ora di ultima modifica (“Last Modified”) per la copia della risorsa di cui dispone, tramite l’intestazione “If-Modified-Since” o “If-None-Match“. Il server ispeziona queste intestazioni e guarda anche il valore dell’ETag. Quest’ultimo è un identificatore univoco utilizzato per specificare la versione di una particolare risorsa.

Se i valori di questi file sono gli stessi, il server invia l’intestazione della risposta HTTP 304 Not Modified e il browser utilizza la copia della risorsa presente nella cache.

Se la copia del browser è obsoleta, il che significa che il file è stato modificato rispetto all’ultima richiesta, viene inviato un codice HTTP 200 e viene utilizzata una nuova copia.

Purtroppo, potrebbero verificarsi dei problemi che potrebbero causare una risposta di errore HTTP 304 quando non dovrebbe verificarsi. Le cause più comuni includono:

  • Problemi di configurazione del server o del Domain Name Server (DNS)
  • Una risorsa nella cache che è infetta o corrotta (cioè, malware o virus che colpiscono il browser)

Il codice di stato 304 può essere dovuto a un problema sia sul lato server che sul lato client, quindi potrebbe essere necessario un po’ di lavoro per diagnosticare il problema e risolverlo.

Come Risolvere un Codice di Stato HTTP 304 (6 Metodi Possibili)

I metodi che potete usare per risolvere un codice di stato HTTP 304 vanno da quelli più semplici a quelli piuttosto tecnici. I motori di ricerca sono responsabili dell’indicizzazione e del caching dei siti web, quindi questo problema può essere solitamente ricondotto al browser usato per accedere al sito.

Naturalmente, non c’è molto che si possa fare per riparare i browser delle persone che stanno cercando di accedere al vostro sito.

Tuttavia, capire cosa può causare il problema per i visitatori può essere utile, sia quando si cerca di trovare una soluzione da parte vostra, sia quando li si assiste direttamente.

Tenendo questo a mente, diamo un’occhiata a 6 metodi che potete usare per provare a risolvere un codice di stato HTTP 304!

1. Cancellate i Dati della Cache del Browser

Per prima cosa, cancellare i dati del browser per ripulire la cache potrebbe essere utile per accedere all’URL desiderato. Questo riguarda la cancellazione di tutti i dati di navigazione, i cookie e le informazioni sulla cache.

Le operazioni da effettuare variano a seconda del browser che si sta utilizzando. Se non siete sicuri di come fare sul vostro dispositivo, fate riferimento alla nostra guida sullo svuotamento della cache per tutti i principali browser.

2. Eseguite una Scansione del Malware

Un altro colpevole può essere cercato nei browser corrotti che sono stati infettati da un virus o da un malware. Pertanto, è una buona idea quella di eseguire una scansione del malware sul vostro sistema. In questo modo potrete identificare e rimuovere eventuali problemi che potrebbero interrompere o interferire con la richiesta dell’header, comprese le estensioni problematiche.

Se utilizzate la versione per Windows di Chrome, potete eseguire il Malware Scanner e il Cleanup Tool integrato.

Prima di tutto assicuratevi di avere l’ultima versione di Chrome aprendo una nuova scheda e cliccando sull’icona del menu, poi su Informazioni su Chrome:

La pagina Informazioni su Chrome
La pagina Informazioni su Chrome

Se il vostro browser non è aggiornato alla versione corrente, potete risolvere il problema nello stesso posto. Quindi, aprite una nuova scheda Chrome e inserite “chrome://settings/cleanup” nella barra degli indirizzi.

Premere Invio, e poi accanto a Trova e rimuovi il software dannoso fate clic sul pulsante Trova:

Lo strumento di pulizia di Google Chrome
Lo strumento di pulizia di Google Chrome

Lo scanner inizierà a lavorare, poi riporterà i risultati.

Sfortunatamente, alcuni altri browser come Firefox e Edge, così come i sistemi operativi macOS e Linux, non hanno una propria versione di questo strumento integrato. Dovrete invece eseguire una scansione del malware utilizzando il software antivirus del vostro computer.

3. Disattivare le Estensioni del Browser

Anche le estensioni del vostro browser potrebbero infettarsi e interferire con le richieste e la comunicazione con il server. Per questo motivo potreste disattivare. Potete farlo aprendo il menu di Chrome e andando su Impostazioni > Estensioni:

La voce di menu Estensioni nelle impostazioni di Chrome
La voce di menu Estensioni nelle impostazioni di Chrome

Nella pagina delle estensioni, è possibile disattivare ciascuna di esse cliccando sul corrispondente interruttore.

Potete anche cancellare le estensioni non utilizzate o non aggiornate tramite il tasto Rimuovi:

La pagina delle estensioni in Google Chrome
La pagina delle estensioni in Google Chrome

Anche in questo caso, questa procedura varia leggermente a seconda del browser. L’obiettivo è quello di rimuovere o disattivare ogni estensione manualmente e poi controllare se questo risolve l’errore HTTP 304.

Una volta fatto, potrete provare a riattivarle una per una.

4. Svuotare il DNS e Resettare il TCP/IP

Se il problema non è stato risolto a questo punto, potrebbe esserci un problema con le impostazioni DNS. Per esempio, l’utilizzo di un indirizzo IP non aggiornato potrebbe causare un codice di stato HTTP 304.

Pertanto, un altra soluzione da provare è la pulizia del DNS e il reset del TCP/IP.

Con Chrome, potete ripulire il DNS del browser inserendo “chrome://net-internals/#dns” in una nuova scheda.

Premete Invio e fate clic sul pulsante Clear host cache:

La pagina delle impostazioni per la pulizia della cache del DNS in Chrome
La pagina delle impostazioni per la pulizia della cache del DNS in Chrome

Potete anche svuotare il DNS e resettare il TCP/IP nel vostro sistema operativo. Se avete bisogno di una guida dettagliata, potete fare riferimento al nostro tutorial Come Svuotare la Cache del DNS (Windows, Mac, Chrome).

5. Provate a Utilizzare il DNS Pubblico di Google

Un’altra causa possibile è un indirizzo DNS errato. Pertanto, vale la pena usare il DNS pubblico di Google per vedere se questo risolve il problema.

In Windows è possibile farlo premendo i tasti Win + R. Nella finestra Run che appare, digitate nella casella di comando “ncpa.cpl”, e poi premete Ok.

Nella finestra Connessioni di rete che vi appare a questo punto, individuate la connessione di rete che state utilizzando e fate clic con il tasto destro del mouse. Selezionate quindi Proprietà:

La pagina delle impostazioni delle connessioni di rete in Windows
La pagina delle impostazioni delle connessioni di rete in Windows

Da lì, fare doppio clic sulla versione 4 del protocollo Internet:

Le impostazioni delle proprietà Wi-Fi in Windows
Le impostazioni delle proprietà Wi-Fi in Windows

Selezionate l’opzione “Utilizza i seguenti indirizzi di server DNS”, quindi immettete il valore “8.8.8.8.8” sotto Preferred e “8.8.4.4” sotto Alternate:

I campi per inserire indirizzi di server DNS preferiti e alternativi in Windows
I campi per inserire indirizzi di server DNS preferiti e alternativi in Windows

Quando avete finito, fate clic su Ok. Poi riavviate il vostro sistema e provate ad accedere di nuovo al sito web.

Per modificare le impostazioni del vostro server DNS utilizzando macOS, andate su Apple > Preferenze di sistema > Rete:

Preferenze di sistema in macOS
Preferenze di sistema in macOS

Nella finestra che vi appare, selezionate la vostra connessione, quindi fate clic su Avanzato e poi sulla scheda DNS:

Il pannello DNS di rete in macOS
Il pannello DNS di rete in macOS

Fate clic sull’icona + accanto agli indirizzi IPv4 o IPv6, per sostituire gli indirizzi esistenti con gli IP pubblici di Google.

Per ulteriori istruzioni o per una guida sull’uso di Google Public DNS su un sistema operativo Linux o altro sistema operativo, consultate la guida DNS di Google.

6. Verificate che i File di Configurazione del Server non Contengano Istruzioni di Reindirizzamento Errate

Un codice di stato HTTP 304 Not Modified può verificarsi a causa di problemi legati sia al server che al client. Se nessuno dei metodi che abbiamo descritto finora ha eliminato il problema, potrebbero essere in errore i file di configurazione del server. Ad esempio, è possibile che siano presenti istruzioni di redirect non corrette.

La procedura di controllo dei file di configurazione del server cambia a seconda che si utilizzi Nginx o Apache.

Noi di Kinsta usiamo il web server Nginx. Quindi, se siete utenti di Kinsta, non avrete accesso al file .htaccess come gli utenti di Apache.

Tuttavia, potrete comunque eseguire funzioni simili. Ad esempio, dopo aver effettuato il login in MyKinsta, potete controllare la sezione Analytics > Risposta del cruscotto per un’analisi dei codici di risposta e dei redirect:

Ripartizione dei codici di risposta in MyKinsta
Ripartizione dei codici di risposta in MyKinsta

Potete anche controllare i registri degli errori. Se avete una domanda o una richiesta specifica sulla modifica dei file di configurazione, la cosa migliore da fare è contattare il nostro team di supporto.

Se il vostro server è in esecuzione su Apache, allora dovrete cercare il file .htaccess nella directory principale del vostro sito. Potete farlo accedendo al File Manager del vostro account di hosting e navigando nella cartella public_html.

Una volta aperto il file, cercate una sezione del modulo mod_cache. Dovrebbe avere questo aspetto:

LoadModule cache_module modules/mod_cache.so
<IfModule mod_cache.c>
    LoadModule cache_disk_module modules/mod_cache_disk.so
    <IfModule mod_cache_disk.c>
        CacheRoot "c:/cacheroot"
        CacheEnable disk  "/"
        CacheDirLevels 5
        CacheDirLength 3
    </IfModule>

    # When acting as a proxy, don't cache the list of security updates
    CacheDisable "https://security.update.server/update-list/"
</IfModule>

Non consigliamo di cancellare nulla, in quanto questo potrebbe causare gravi danni. Potete invece provare a commentare temporaneamente la sezione della cache aggiungendo un simbolo “#” all’inizio di ogni riga.

Dopo aver salvato le vostre modifiche, controllate se il codice di stato HTTP 304 è stato risolto.

Riepilogo

I codici di reindirizzamento 300 sono usati per migliorare la velocità e le prestazioni della pagina. Purtroppo, quando un server o un browser non è configurato correttamente, la comunicazione tra i due può essere interrotta e risultare in un codice di stato HTTP 304 Not Modified. Ci sono 6 metodi che potete usare per risolvere il problema, nello specifico:

  1. Cancellare i dati della cache del browser.
  2. Eseguire una scansione malware.
  3. Disabilitare le estensioni del browser.
  4. Pulire il DNS e ripristinare il TCI/IP.
  5. Provare il DNS pubblico di Google.
  6. Controllare che i file di configurazione del server non contengano istruzioni di reindirizzamento errate.