Confessione : i siti che mantengo hanno regole diverse per il controllo della cache principalmente in base alla configurazione predefinita del server, seguita dai consigli dei plug-in Page Speed & Y-Slow Firefox e della vista Risorse di rete in Speed Tracer di Google . Il controllo della cache è impostato su privato / pubblico a seconda di ciò che dicono di fare, le intestazioni di ETag / Last-Modified vengono armeggiate solo se Y-Slow suggerisce che c'è qualcosa di sbagliato e Vary-Accept-Encoding sembra necessario quando si decomprimono manualmente i file per Amazon CloudFront.
Quando si legge il materiale sulle diverse opzioni e su ciò che fanno, sembrano esserci informazioni contrastanti, regole per deleghe rotte e configurazioni di culto del carico . Tutte le informazioni ufficiali fornite dagli strumenti di analisi sopra menzionati sono alquanto inaccessibili in quanto trattano individualmente ogni argomento anziché come strategia unificata (quindi non vi è alcun riferimento incrociato di tecniche).
Ad esempio, sembra che non abbia senso che gli strumenti di analisi della velocità classifichino un sito con ETag uguale a un sito senza di essi se sono pensati per aiutare con la memorizzazione nella cache.
Quali sono le regole rigide e veloci per una strategia di controllo cache indipendente dalla piattaforma?
MODIFICARE:
Un collegamento attraverso l'articolo di Jeff Atwood spiega la memorizzazione nella cache in modo superbo.
Per la cronaca, ecco le regole rigide e veloci:
Se il file è compresso utilizzando GZIP, ecc ., Utilizzare "cache-control: private" poiché un proxy può restituire la versione compressa a un client che non lo supporta (la cache del browser conterrà i file contrassegnati in questo modo). Ricorda anche di includere un "Vary: Accept-Encoding" per dire che è comprimibile.
Usa Last-Modified in congiunzione con ETag : l'utilizzo della cinghia e delle parentesi graffe fornisce entrambi i validatori, mentre ETag si basa sul contenuto del file anziché sul tempo di modifica da solo, usando entrambe le copertine su tutte le basi. NOTA: il PageTest di AOL ha un approccio carta bianca contro ETag per qualche motivo. Se si utilizza Apache su più di un server per ospitare lo stesso contenuto, rimuovere l'inode implicitamente dichiarato da ETags escludendolo dalla direttiva FileETag (ad esempio "Dimensione file MTETag") a meno che non si utilizzi realmente lo stesso filesystem live.
Usa "cache-control: public" dove puoi - questo significa che i server proxy (e la cache del browser) restituiranno i tuoi contenuti anche se il resto della pagina necessita dell'autenticazione HTTP, ecc.