1000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Utilizzare gli header per ottimizzare la cache delle risorse
Questa guida riguarda gli header HTTP utilizzati per ottimizzare la cache delle risorse e verificare se una risorsa è stata modificata dall'ultima volta che è stata recuperata da un client. L'uso di questi header aiuta a risparmiare larghezza di banda e accelerare il caricamento delle pagine evitando di reinviare risorse statiche non cambiate.
Uso dell'header Expires
Configura gli header di cache utilizzando le direttive del modulo mod_expires
nel file .htaccess
alla radice della directory del tuo sito (ad es. /web
o /sites/domain.xyz
):
- Apri o crea il file
.htaccess
alla radice. Inserisci il seguente codice:
<IfModule mod_expires.c>
Poi inserisci i tuoi comandi, ad es.:
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 direttive definiscono il periodo di validità delle risorse specifiche; in questo esempio:
- I file HTML sono memorizzati nella cache per una settimana
- Le immagini JPEG, i file CSS e i file JavaScript sono memorizzati nella cache per un mese
- Puoi regolare questi valori in base alle tue esigenze
- Queste direttive definiscono il periodo di validità delle risorse specifiche; in questo esempio:
Termina l'aggiunta con il tag di chiusura:
</IfModule>
- Salva il file
.htaccess
.
Uso dell'header If-Modified-Since
L'header HTTP If-Modified-Since
è utilizzato dai client per verificare se una risorsa è stata modificata dall'ultima volta che è stata recuperata. Se la risorsa non è cambiata, il server può rispondere con un codice di stato 304 Not Modified
, evitando di reinviare la risorsa completa. Questo aiuta a ridurre la larghezza di banda e ad accelerare il caricamento delle pagine.
Per sfruttare l'header If-Modified-Since
sul tuo server:
Assicurati che il tuo server web sia configurato per restituire l'header
Last-Modified
quando una risorsa viene servita; ad es. con Apache, questo può essere fatto tramite il modulomod_headers
:<IfModule mod_headers.c> Header set Last-Modified "expr=%{NOW}" </IfModule>
Quando il client fa una richiesta successiva per la stessa risorsa, includerà l'header
If-Modified-Since
con la data dell'ultima modifica conosciuta:GET /resource HTTP/1.1 Host: www.example.com If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
Il server confronta quindi la data dell'header
If-Modified-Since
con la data dell'ultima modifica della risorsa; se la risorsa non è stata modificata da quella data, il server restituisce una risposta304 Not Modified
:HTTP/1.1 304 Not Modified
- Altrimenti, il server restituisce la risorsa aggiornata con un codice di stato
200 OK
.
Combinando gli header Expires
e If-Modified-Since
, puoi ottimizzare efficacemente la cache e il controllo delle modifiche delle tue risorse, offrendo così migliori prestazioni ai tuoi utenti.