it-swarm.it

Quali sono le regole rigide e veloci per il controllo della cache?

Confessione : i siti che mantengo hanno regole diverse per il controllo della cache principalmente in base alla configurazione predefinita del server seguita da raccomandazioni del Velocità della pagina & Y-Slow Plug-in Firefox e la vista Risorse di rete in Google Speed ​​Tracer . 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 non funzionanti e configurazioni cargo cult . Qualsiasi informazione ufficiale fornita dagli strumenti di analisi sopra menzionati è alquanto inaccessibile in quanto tratta ogni argomento singolarmente invece che come una strategia unificata (quindi non vi è alcun riferimento incrociato di tecniche).

Ad esempio, sembra che non abbia senso che gli strumenti di analisi della velocità valutino 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?

EDIT:

Un link attraverso articolo di Jeff Atwood spiega la memorizzazione nella cache in profondità superba.

Per la cronaca, ecco le regole rigide e veloci:

Se il file è compresso utilizzando GZIP, ecc. - utilizzare "cache-control: private" come proxy può restituire la versione compressa a un client che non supportarlo (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 di cinghia e bretelle fornisce entrambi i validatori, mentre ETag si basa sul contenuto del file anziché sul tempo di modifica da solo, usando entrambi copre tutte le basi. NOTA: 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 (cioè "Dimensione file MTETag") a meno che non si stia effettivamente utilizzando lo stesso filesystem live.

Usa "controllo cache: pubblico" ovunque puoi - questo significa che i server proxy (e la cache del browser) restituiranno i tuoi contenuti anche se il resto di la pagina richiede autenticazione HTTP, ecc.

15
Metalshark

Innanzitutto, non sbarazzarsi dell'ETag come dice Yahoo, a meno che non si stia utilizzando una server farm/cluster. Finché lo stesso file restituisce sempre lo stesso ETag quando non è cambiato, allora è una direttiva molto utile.

Per quanto riguarda le altre intestazioni, Yahoo best practice suggerisce di impostare un'intestazione Expires molto futura per i file statici, utilizzare Cache-Control per i contenuti dinamici. Tuttavia Cache-control è perfettamente adatto per i contenuti statici (praticamente nessuna differenza tra loro).

Quando si modificano i file statici memorizzati nella cache, è necessario modificare il nome file o aggiungere un parametro univoco alla fine, ad es. example.com/styles.css?v=2. Tuttavia, è preferibile modificare il nome file effettivo, come indicato nei commenti seguenti.

Per inciso, è possibile modificare le regole YSlow a proprio piacimento, per rimuovere la regola Etag e aggiungere il proprio dominio come CDN. Questo articolo è anche una buona lettura: I problemi di Yahoo non sono i tuoi problemi

8
DisgruntledGoat

Modifica le intestazioni di richiesta delle tue risorse per utilizzare la memorizzazione nella cache Per la maggior parte delle persone, il modo per memorizzare nella cache ebable è aggiungere del codice a un file chiamato .htaccess sul tuo host/server web.

Questo significa andare al file manager (o ovunque tu vada per aggiungere o caricare file) sul tuo host web.

Il file .htaccess controlla molte cose importanti per il tuo sito. Se non hai familiarità con il file .htaccess, leggi il mio articolo di lavoro su .htaccess per sapere come fare prima di modificarlo.

Il codice seguente indica ai browser cosa memorizzare nella cache e per quanto tempo "ricordarlo". Dovrebbe essere aggiunto all'inizio del file .htaccess.

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

Salvare il file .htaccess e quindi aggiornare la pagina Web.

Fonte:
https://varvy.com/pagespeed/leverage-browser-caching.html

0
Nomib Nomib