Risposte:
html5boilerplate.com include un file .htaccess ben commentato che ha molte impostazioni standard da considerare. Tra questi ci sono impostazioni ragionevoli per la scadenza del contenuto (Scade, E-tag, ...).
Ecco la documentazione su mod_expires .
Si noti che le Last-Modified
intestazioni sono intestazioni di cache deboli. L'attuale preferenza è usare le Cache-Control
intestazioni.
Google ha un buon articolo su questo.
Ottimizza la memorizzazione nella cache
Scadenza e controllo della cache: età massima. Questi specificano la "durata di aggiornamento" di una risorsa, ovvero il periodo di tempo durante il quale il browser può utilizzare la risorsa memorizzata nella cache senza verificare se è disponibile una nuova versione dal server Web. Sono "potenti intestazioni di cache" che si applicano incondizionatamente; ovvero, una volta impostati e scaricati la risorsa, il browser non emetterà alcuna richiesta GET per la risorsa fino al raggiungimento della data di scadenza o dell'età massima.
Ultima modifica ed ETag. Questi specificano alcune caratteristiche della risorsa che il browser controlla per determinare se i file sono uguali. Nell'intestazione Ultima modifica, questa è sempre una data. Nell'intestazione ETag, questo può essere qualsiasi valore che identifica in modo univoco una risorsa (le versioni dei file o gli hash del contenuto sono tipici). Last-Modified è un'intestazione di cache "debole" in quanto il browser applica un'euristica per determinare se recuperare l'elemento dalla cache o meno. (L'euristica è diversa tra i diversi browser.) Tuttavia, queste intestazioni consentono al browser di aggiornare in modo efficiente le sue risorse memorizzate nella cache emettendo richieste GET condizionali quando l'utente ricarica esplicitamente la pagina. I GET condizionali non restituiscono la risposta completa a meno che la risorsa non sia cambiata sul server e quindi abbiano una latenza inferiore rispetto ai GET completi.
Raccomando di utilizzare una Cache-Control
o le Expires
intestazioni secondo necessità poiché sono potenti intestazioni della cache. Alcuni sistemi ignoreranno le date dell'ultima modifica.
È quindi possibile utilizzare uno strumento simile curl
o http://redbot.org per controllare le intestazioni.
Last-Modified
intestazioni in assenza di altre istruzioni di memorizzazione nella cache lascia il periodo della cache al client HTTP. Se una risorsa non è stata modificata dalla Last-Modified
data, la risorsa deve essere considerata nuova. Al contrario, quando si utilizza un'intestazione Expires
o Cache-Control
, l'origine può impostare un periodo di freschezza esplicito.
Expires
è un'intestazione totalmente inappropriata per le risorse che non scadono. Alcune risorse possono essere modificate, ma non ad una data di scadenza. Il punto di Google è cheLast-Modified
richiede un GET condizionale, mentreExpires
consente alla cache del browser di saltare del tutto il GET.