Velocità di caching fino ripetuto di pagine viste e fa risparmiare un sacco di traffico, impedendo il download di contenuti immutati ogni visualizzazione di una pagina.
Possiamo usare Cache-Control: max-age = ... per informare i browser che il componente non verrà modificata per un periodo definito. In questo modo si evitano inutili ulteriori richieste se il browser ha già il componente nella cache e quindi innescato cache di pagine viste verrà eseguito più velocemente.
I browser moderni in grado di memorizzare nella cache i file statici, anche senza intestazioni di controllo ogni cache utilizzando alcuni metodi euristici, ma lo faranno più efficiente se definiamo le intestazioni caching implicitamente.
Per Apache2 è possibile attivare max-age con mod_expires :
ExpiresActive On ExpiresByType "accesso più 1 mese" image / gif ExpiresByType "accesso più 1 mese" image / jpeg ExpiresByType "accesso più 1 mese" image / jpeg ExpiresByType "accesso più 1 mese" text / css ExpiresByType "accesso più 1 mese" text / javascript ExpiresByType "accesso più 1 mese" application / x-javascript ExpiresByType application / x-shockwave-flash "accesso più 1 mese"
Per Lighttpd c'è mod_expire modulo. Attivarlo nella sezione server.modules:
server.modules = ( ... "Mod_expire", ... ) Quindi aggiungere le seguenti direttive per le directory con i file statici: $ HTTP ["url"] = ~ "^ / images /" { expire.url = ("" => "accesso 30 giorni") }
Max-age per il server Nginx può essere attivata mediante ngx_http_headers_module :
scadenza max; Ora, web server invia l'intestazione di caching dei file statici:
Cache-Control: max-age = 2592000 In caso di modifica di progettazione che dovrebbe impedire l'utilizzo di contenuti obsoleti che i browser hanno nelle loro cache. Questo può essere fatto con l'aggiunta di versioni di file da nomi di file:
script.js -> script1.js -> script2.js -> ... ecc
Cache-Control: max-age può essere utile anche quando l'output HTML. Immaginate di pagine generate da PHP che ha cambiato non tanto spesso, una volta al giorno o anche di più. Ma i browser devono ancora scaricare ogni visualizzazione di una pagina HTML.
Possiamo migliorare inviando max-age valore in PHP.
header ('Cache-Control: max-age = 28800'); In questo modo abbiamo impostato tutta la vita desiderabile della cache da 8 ore. Ora, se qualcuno sta cliccando su un link per la seconda volta entro 8 ore Periodo ottiene la pagina immediatamente.
Max-age aiuta anche a rendere più efficiente server proxy. Possiamo facilmente organizzare trasparente sul lato server di caching con l'aggiunta di server proxy per interfaccia web.
Si noti che non vi è caso facile se le pagine hanno un contenuto che cambia spesso e questo è rilevante.
Per esempio, ci possono essere difficoltà nel caching pagine con form di login che si trasforma in una scatola con «Ciao nomeutente» dopo il login dell'utente o se ci sono commenti degli utenti, l'utente che ha postato il commento non lo vedrà. Perché non possiamo chiedere browser per distruggere la voce della cache, sarà ancora ottenere la vecchia pagina dalla cache.
La soluzione può essere usare Javascript per generare finestra di login (richiede che Javascript sia abilitato). Se abbiamo impostato un cookie dopo registrazione dell'utente, possiamo controllare sul lato client e generare contenuti adatti per l'utente connesso. In questo modo il contenuto sarà lo stesso dal punto di vista lato server e possono essere memorizzate nella cache.
