Hostwinds Blog
Cerca risultati per:
Che cos'è 304 Response non modificata?
Il codice di stato non modificato HTTP 304 è un codice di reindirizzamento che indica che la risorsa richiesta non è stata modificata dall'ultima richiesta.
In termini semplici, il server sta dicendo al browser che la pagina/risorsa che richiede non è stata aggiornata/modificata dall'ultima visita del browser.Quindi, invece di ri-recuperare e scaricare nuovamente la pagina/risorsa, che richiede tempo e consuma larghezza di banda, viene detto al browser che può mostrare la pagina/risorsa esistente memorizzata nella sua cache.
Affinché un server risponda con un codice di stato 304, deve sapere se la risorsa memorizzata nella cache del browser è la stessa versione memorizzata nel suo database.
Ecco come funziona:
Quando un browser visita una pagina Web per la prima volta, è richiesto risorse archiviate dal server Web del sito.
Il server Web risponde alla richiesta con un codice HTTP da 200 OK e invia le risorse al browser.Incluso in tale risposta, all'interno dell'intestazione HTTP, c'è un codice hash o ETAG (tag di entità) - un identificatore univoco, in genere una serie di numeri, che cambia ogni volta che un sito Web/pagina/risorsa viene modificato o aggiornato.
Insieme alla cache del contenuto della pagina web, il browser registra anche l'ora/data della sua richiesta.
Dopo aver rivisitato la stessa pagina Web, il browser avvia una richiesta HTTP condizionale, dicendo al server Web che solo in determinate condizioni dovrebbe raccogliere le risorse della pagina Web dal database del server e inviarlo per il download del browser.
Esistono due intestazioni HTTP di base utilizzate per le richieste condizionali, ciascuna contenente informazioni sulla versione della pagina Web attualmente archiviata nella cache del browser:
"If-Modified-Since" contiene la data/ora in cui il browser ha richiesto l'ultima pagina Web.
"If-None-Match" contiene l'ETAG (codice hash).
Il server Web prenderà la richiesta condizionale e confronterà le informazioni sull'intestazione HTTP con le informazioni nel suo database, restituendo 200 OK o 304 non modificato.
Quando "If-Modified-Since" si trova nell'intestazione HTTP, il server Web confronterà la data/ora in cui la pagina Web è stata aggiornata alla fine alla data/ora che è stata memorizzata nella cache dal browser.
Quando "IF-None-Match" si trova nell'intestazione HTTP, il server Web vedrà se l'etag della pagina Web nel suo database corrisponde all'etag della versione memorizzata nella cache del browser della pagina web.
Quando entrambe le intestazioni vengono utilizzate per la verifica, "If-None-Match" avrà la precedenza su "If-Modified-Since".
Se le informazioni sul server Web corrispondono alle informazioni di intestazione, il server Web risponderà con un codice HTTP 304 non modificato, dicendo al browser di mostrare la versione memorizzata nella cache della pagina Web.Se le informazioni non corrispondono, il server recupererà la pagina Web aggiornata e la invierà al browser in cui verrà quindi scaricato e memorizzata nella cache per una futura richiesta HTTP condizionale.
Il valore del codice HTTP 304 dipende davvero dalle dimensioni del sito Web.
Per i siti Web di grandi dimensioni (decine di migliaia di pagine), il codice di risposta 304 può aiutare a ridurre l'utilizzo della larghezza di banda e aumentare la velocità del sito per una migliore esperienza utente.Potrebbe anche aiutare con SEO liberando il budget di scansione e potenzialmente consentire un'indicizzazione più rapida: i robot dei motori di ricerca non in genere non reclarano pagine che sanno che non sono state cambiate, permettendo loro di trovare e strisciare le pagine nuove e/o aggiornate più rapidamente.
Siti più piccoli potrebbero anche beneficiare delle competenze di memorizzazione nella cache del codice HTTP 304, ma i vantaggi sono abbastanza trascurabili.
Detto questo, piccoli siti possono sperimentare quantità eccessive di traffico, consumando rapidamente la larghezza di banda, nel qual caso il codice 304 potrebbe essere potenzialmente vantaggioso.Tuttavia, ci sono modi molto migliori per mitigare tale problema.
Il codice di stato 304 è un'ottima risorsa per l'ottimizzazione delle prestazioni Web e il salvataggio della larghezza di banda attraverso l'evitamento di trasferimenti di dati ridondanti.
Ce ne sono alcuni che lo paragonano a un codice di errore (4xx o 5xx) ma non lo è.È un codice di reindirizzamento utilizzato dai browser (client) e dai server per comunicare ed eseguire un'azione.
Detto questo, ci possono essere situazioni in cui la comunicazione tra client e server viene interrotta o rotta.Chiamiamo questo problema un 304 stantio.
Se un utente incontra costantemente un codice di stato non modificato 304 da un sito che frequenta, potrebbe indicare un problema con il browser in quanto non è in grado di eseguire correttamente la richiesta HTTP condizionale e scaricare il contenuto aggiornato.
Questo problema deriva in genere da fonti esterne collegate al browser, come i file corrotti in applicazioni basate sul browser, file corrotti in software scaricato di recente e virus o malware.
Una di queste fonti potrebbe corrompere la cache del browser e/o influenzare il modo in cui il browser comunica con il server Web.
Un 304 stantio può essere dovuto a un problema con le impostazioni di reindirizzamento del server Web.
Le impostazioni di reindirizzamento sono direttive trovate nel file system .htaccess che utilizzano i codici di stato 3xx per controllare il modo in cui il traffico web è diretto o reindirizzato su un sito.
Le direttive del codice di stato 304 configurate in modo improprio potrebbero comportare una consegna di contenuti stantii, un uso inefficiente delle risorse del server o persino problemi di compatibilità del browser.
Fortunatamente, ci sono azioni che possono essere intraprese per risolvere o addirittura evitare di evitare un 304 stantio.
Il metodo più comune ed efficace è l'eliminazione di tutta la cronologia di navigazione, i cookie e qualsiasi altro dato memorizzato nella cache.
Tutte le pagine Web precedentemente memorizzate vengono rimosse e i siti Web non memorizzano più i dati del browser.Quando un utente visita un sito è come se stesse visitando per la prima volta e ora ha una nuova copia del sito.
La cache DNS funziona nello stesso modo di archiviare dati come la cache del browser, ma sul sistema operativo.Contiene anche i dati di navigazione, insieme a indirizzi IP, nomi host e record di risorse.
I dati memorizzati aggiuntivi consentono alle pagine Web di caricare più velocemente poiché il browser non deve passare attraverso l'intero processo di sistema di nomi di dominio.
E proprio come la cancellazione della cache del browser, scaricare la cache DNS sostanzialmente ripristina l'esperienza di navigazione Web, consentendo agli utenti (browser) di raccogliere contenuti cache nuovi.
I browser infettati da malware o virus corrompono i file della cache del browser e interrompono la comunicazione con i server Web.
L'esecuzione di una scansione per virus e malware può aiutare a identificare e rimuovere la minaccia, consentendo al browser di riprendere le normali operazioni.
Tutti amiamo una buona estensione del browser, ma alcune estensioni possono contenere file corrotti che si fanno strada nella cache del browser, influenzando il modo in cui le intestazioni HTTP comunicano con quelle del server Web.
Rivedere le estensioni e disabilitare o rimuoverle uno per uno può aiutare a individuare il colpevole.
Sul lato server abbiamo .htaccess. Questo è un file di configurazione del server che controlla il comportamento di un sito Web a livello di directory, incluso come gestire i codici di stato 304.
La revisione delle istruzioni di reindirizzamento nel file può mostrare un problema su come il server Web sta comunicando 304 codici di stato ai browser.
Il codice di stato non modificato HTTP 304 è progettato per aiutare a semplificare la comunicazione tra client (browser) e server e quando si lavora correttamente aiuta a ottimizzare le prestazioni Web e salvare la larghezza di banda.
Tuttavia, se non configurato correttamente o corrotto da forze esterne, lo stato 304 potrebbe creare un problema di contenuto stantio, influendo sull'esperienza utente e le classifiche dei motori di ricerca.
Alla fine, abbiamo una serie di soluzioni che possono aiutare a risolvere o, si spera, evitare definitivamente gli effetti negativi del codice di stato 304.
Ricorda, il codice di stato HTTP 304 non è un errore.
Felice hosting!
Scritto da Hostwinds / gennaio 6, 2024