Confession : Seiten , die ich beibehalten haben unterschiedliche Regeln für Cache Control hauptsächlich basierend auf der Standardkonfiguration des Servers mit Empfehlungen aus dem weiterverfolgt Page Speed & Y-Langsame Firefox - Plug-In und die Netzwerkressourcen Ansicht in Google Speed Tracer . Die Cache-Kontrolle ist auf privat / öffentlich eingestellt, je nachdem, was sie zu tun haben. Die / Zuletzt geänderten Header von ETag werden nur gebastelt, wenn Y-Slow vermuten lässt, dass etwas nicht stimmt und die Vary-Accept-Codierung für das manuelle Gziping von Dateien für Amazon erforderlich ist CloudFront.
Beim Durchlesen des Materials über die verschiedenen Optionen und deren Funktionsweise scheinen widersprüchliche Informationen, Regeln für defekte Proxies und Frachtkultkonfigurationen vorzuliegen. Alle offiziellen Informationen, die von den oben genannten Analysewerkzeugen bereitgestellt werden, sind ziemlich unzugänglich, da sie sich auf jedes Thema einzeln und nicht als einheitliche Strategie beziehen (es gibt also keine Querverweise zwischen Techniken).
Zum Beispiel scheint es keinen Sinn zu machen, dass die Tools für die Geschwindigkeitsanalyse eine Site mit ETag genauso bewerten wie eine Site ohne ETag, wenn sie beim Caching helfen sollen.
Was sind die harten und schnellen Regeln für eine plattformunabhängige Cache-Steuerungsstrategie?
BEARBEITEN:
Ein Link durch Jeff Atwoods Artikel erklärt Caching in großartiger Tiefe.
Für die Aufzeichnung sind hier die harten und schnellen Regeln:
Wenn die Datei mit GZIP usw. komprimiert wurde - verwenden Sie "cache-control: private" als Proxy, um die komprimierte Version möglicherweise an einen Client zurückzugeben, der sie nicht unterstützt (der Browser-Cache enthält jedoch Dateien, die auf diese Weise markiert wurden). Denken Sie auch daran, ein "Vary: Accept-Encoding" einzufügen, um zu sagen, dass es komprimierbar ist.
Verwenden Sie Last-Modified in Verbindung mit ETag. Durch die Verwendung von Belt and Braces werden beide Validatoren bereitgestellt, während ETag auf dem Dateiinhalt und nicht nur auf der Änderungszeit basiert und beide Bereiche aller Basen abdeckt. HINWEIS: AOLs PageTest verfolgt aus irgendeinem Grund einen Carte-Blanche-Ansatz gegenüber ETags. Wenn Sie Apache auf mehreren Servern verwenden, um denselben Inhalt zu hosten, entfernen Sie den implizit deklarierten Inode aus ETags, indem Sie ihn aus der FileETag-Direktive ausschließen (dh "FileETag MTime Size"), es sei denn, Sie verwenden tatsächlich dasselbe Live-Dateisystem.
Verwenden Sie "cache-control: public", wo immer Sie können. Dies bedeutet, dass Proxy-Server (und der Browser-Cache) Ihren Inhalt zurückgeben, auch wenn der Rest der Seite HTTP-Authentifizierung usw. benötigt.