1000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Utilizzare gli header per ottimizzare la cache delle risorse
Questa guida spiega come ottimizzare la memorizzazione nella cache delle risorse web attraverso le intestazioni HTTP.
Preambolo
- Una buona strategia di cache consente di migliorare significativamente le prestazioni del tuo sito evitando di ritrasmettere inutilmente file invariati.
- La memorizzazione nella cache web si basa su due meccanismi complementari:
- Il periodo di validità della cache (tramite l'intestazione
Expires
) che indica quanto tempo una risorsa può essere riutilizzata senza contattare il server. - Convalida condizionale (tramite intestazioni
Last-Modified
/If-Modified-Since
) che consente di verificare se una risorsa è cambiata prima di scaricarla nuovamente.
- Il periodo di validità della cache (tramite l'intestazione
Configurazione della durata della cache con Expires
L'intestazione Expires
consente di specificare un periodo di tempo durante il quale il browser può riutilizzare direttamente le risorse dalla cache locale. Ecco come configurarlo nel tuo file .htaccess
:
- Crea o apri il file
.htaccess
alla radice del tuo sito (di solito in/web
oppure/sites/domain.xyz
). Aggiungere la configurazione del modulo
expires
:<IfModule mod_expires.c>
Impostare i tempi di cache appropriati per ogni tipo di risorsa:
ExpiresActive On ExpiresByType text/html "access plus 1 week" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month"
Queste linee guida significano che:
- Le pagine HTML saranno conservate nella cache per una settimana.
- Le immagini JPEG, CSS e JavaScript saranno conservate per un mese.
Adatta questi tempi in base alla frequenza di aggiornamento delle risorse.
Chiudere la sezione di configurazione:
</IfModule>
Convalida condizionale con Last-Modified
Anche quando una risorsa è scaduta nella cache, non è sempre necessario scaricarla completamente. Il meccanismo di convalida condizionale consente al browser di verificare se la sua versione cache è ancora aggiornata. Questo processo funziona così:
- Il server invia automaticamente un'intestazione
Last-Modified
con ogni risorsa, indicando la data dell'ultima modifica.- Apache lo gestisce nativamente per i file statici - non è necessaria alcuna configurazione aggiuntiva.
Quando il browser richiede nuovamente la risorsa, invia un'intestazione
If-Modified-Since
Contiene la data che ha nella cache:GET /resource HTTP/1.1 Host: www.example.com If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
- Il server confronta questa data con la data effettiva di modifica del file:
- Se il file non è stato modificato, restituisce semplicemente un codice
304 Not Modified
, risparmiando così la larghezza di banda. - Se il file è stato modificato, restituisce la nuova versione con un codice
200 OK
.
- Se il file non è stato modificato, restituisce semplicemente un codice