Confession : les sites que je maintiens ont des règles différentes pour le contrôle du cache, principalement basées sur la configuration par défaut du serveur, suivies de recommandations des plug-ins Page Speed et Y-Slow Firefox et de la vue Network Resources dans Speed Tracer de Google . Cache-Control est défini sur privé / public en fonction de ce qu'ils disent de faire, les en-têtes ETag / Last-Modified ne sont bricolés que si Y-Slow suggère qu'il y a quelque chose de mal et Vary-Accept-Encoding semble nécessaire lors de la fermeture manuelle des fichiers pour Amazon CloudFront.
En lisant le matériel sur les différentes options et ce qu'elles font, il semble y avoir des informations contradictoires, des règles pour les procurations brisées et les configurations culte du fret . Toutes les informations officielles fournies par les outils d'analyse mentionnés ci-dessus sont assez inaccessibles car elles traitent chaque sujet individuellement au lieu d'une stratégie unifiée (il n'y a donc pas de référence croisée des techniques).
Par exemple, il ne semble pas logique que les outils d'analyse de vitesse évaluent un site avec ETag comme un site sans eux s'ils sont destinés à aider à la mise en cache.
Quelles sont les règles strictes et rapides pour une stratégie de contrôle de cache agnostique de plateforme?
ÉDITER:
Un lien à travers l'article de Jeff Atwood explique Caching dans une superbe profondeur.
Pour mémoire, voici les règles strictes et rapides:
Si le fichier est compressé à l'aide de GZIP, etc. - utiliser "cache-control: private" comme proxy peut renvoyer la version compressée à un client qui ne la prend pas en charge (le cache du navigateur contiendra cependant les fichiers marqués de cette façon). N'oubliez pas non plus d'inclure un "Vary: Accept-Encoding" pour dire qu'il est compressible.
Utiliser Last-Modified en conjonction avec ETag - l'utilisation de la ceinture et des bretelles fournit les deux valideurs, tandis que ETag est basé sur le contenu du fichier au lieu du temps de modification seul, en utilisant les deux couvre toutes les bases. REMARQUE: PageTest d'AOL a une approche carte blanche contre ETags pour une raison quelconque. Si vous utilisez Apache sur plusieurs serveurs pour héberger le même contenu, supprimez l'inode implicitement déclaré d'ETags en l'excluant de la directive FileETag (c'est-à-dire "FileETag MTime Size"), sauf si vous utilisez véritablement le même système de fichiers en direct.
Utilisez "cache-control: public" partout où vous le pouvez - cela signifie que les serveurs proxy (et le cache du navigateur) renverront votre contenu même si le reste de la page nécessite une authentification HTTP, etc.
la source
Vary: Accept-Encoding
, voir le bas de code.google.com/speed/page-speed/docs/caching.htmlexample.com/style_v2.css
Source:
https://varvy.com/pagespeed/leverage-browser-caching.html
la source
ExpiresByType
directives que je vois incluent le type mimetext/x-javascript
- votre serveur répond-il vraiment avec ce type de contenu?! (Un exemple de copie / collage aveugle de l'OMI.)