Web-Caching-Grundlagen: Terminologie, HTTP-Header und Caching-Strategien

Einführung

Intelligentes Zwischenspeichern von Inhalten ist eine der effektivsten Möglichkeiten, um das Nutzererlebnis für die Besucher Ihrer Website zu verbessern. Das Zwischenspeichern oder vorübergehende Speichern von Inhalten aus früheren Anforderungen ist Teil der Kernstrategie für die Bereitstellung von Inhalten, die im HTTP-Protokoll implementiert ist. Komponenten im gesamten Übermittlungspfad können alle Elemente zwischenspeichern, um nachfolgende Anforderungen zu beschleunigen, vorbehaltlich der für den Inhalt deklarierten Caching-Richtlinien.

In diesem Handbuch werden einige der grundlegenden Konzepte des Zwischenspeicherns von Webinhalten erläutert. Dies behandelt hauptsächlich die Auswahl von Caching-Richtlinien, um sicherzustellen, dass Caches im gesamten Internet Ihre Inhalte korrekt verarbeiten können. Wir werden über die Vorteile sprechen, die Caching bietet, die Nebenwirkungen, die zu beachten sind, und die verschiedenen Strategien, die anzuwenden sind, um die beste Mischung aus Leistung und Flexibilität zu erzielen.

Was ist Caching?

Caching ist der Begriff für das Speichern wiederverwendbarer Antworten, um nachfolgende Anforderungen zu beschleunigen. Es gibt viele verschiedene Arten der Zwischenspeicherung, von denen jede ihre eigenen Merkmale aufweist. Sowohl Anwendungs-Caches als auch Speicher-Caches sind beliebt, da sie bestimmte Reaktionen beschleunigen können.

Web-Caching, der Schwerpunkt dieses Handbuchs, ist eine andere Art von Cache. Das Web-Caching ist ein zentrales Konstruktionsmerkmal des HTTP-Protokolls, das den Netzwerkverkehr minimieren und gleichzeitig die wahrgenommene Reaktionsfähigkeit des gesamten Systems verbessern soll. Caches werden auf jeder Ebene der Reise eines Inhalts vom ursprünglichen Server zum Browser gefunden.

Beim Web-Caching werden die HTTP-Antworten für Anforderungen nach bestimmten Regeln zwischengespeichert. Nachfolgende Anforderungen für zwischengespeicherten Inhalt können dann aus einem Cache erfüllt werden, der näher am Benutzer liegt, anstatt die Anforderung vollständig an den Webserver zurückzusenden.

Leistungen

Effektives Caching unterstützt sowohl Inhaltskonsumenten als auch Inhaltsanbieter. Einige der Vorteile, die Caching für die Bereitstellung von Inhalten mit sich bringt, sind:

  • Decreased network costs: Inhalte können an verschiedenen Stellen im Netzwerkpfad zwischen dem Inhaltskonsumenten und dem Inhaltsursprung zwischengespeichert werden. Wenn der Inhalt näher am Verbraucher zwischengespeichert wird, verursachen Anforderungen nicht viel zusätzliche Netzwerkaktivität über den Cache hinaus.

  • Improved responsiveness: Durch Caching können Inhalte schneller abgerufen werden, da kein vollständiger Netzwerk-Roundtrip erforderlich ist. Caches, die in der Nähe des Benutzers gepflegt werden, wie der Browser-Cache, können diesen Abruf fast augenblicklich machen.

  • Increased performance on the same hardware: Für den Server, von dem der Inhalt stammt, kann durch aggressives Caching mehr Leistung auf derselben Hardware erzielt werden. Der Inhaltseigentümer kann die leistungsstarken Server entlang des Übermittlungspfads nutzen, um die Hauptlast bestimmter Inhaltsladungen zu tragen.

  • Availability of content during network interruptions: Mit bestimmten Richtlinien kann das Caching verwendet werden, um Endbenutzern Inhalte bereitzustellen, auch wenn diese für kurze Zeit nicht auf den Ursprungsservern verfügbar sind.

Terminologie

Beim Umgang mit Caching gibt es einige Begriffe, die Ihnen möglicherweise nicht bekannt sind. Einige der gebräuchlichsten sind unten aufgeführt:

  • Origin server: Der Ursprungsserver ist der ursprüngliche Speicherort des Inhalts. Wenn Sie als Webserveradministrator fungieren, ist dies der Computer, den Sie steuern. Es ist verantwortlich für die Bereitstellung von Inhalten, die nicht über die Anforderungsroute aus einem Cache abgerufen werden konnten, und für das Festlegen der Caching-Richtlinie für alle Inhalte.

  • Cache hit ratio: Die Effektivität eines Caches wird anhand der Cache-Trefferquote oder der Trefferquote gemessen. Dies ist ein Verhältnis der Anforderungen, die aus einem Cache abgerufen werden können, zur Gesamtzahl der gestellten Anforderungen. Eine hohe Cachetrefferquote bedeutet, dass ein hoher Prozentsatz des Inhalts aus dem Cache abgerufen werden konnte. Dies ist normalerweise das gewünschte Ergebnis für die meisten Administratoren.

  • Freshness: Frische ist ein Begriff, der verwendet wird, um zu beschreiben, ob ein Element in einem Cache immer noch als Kandidat für einen Kunden betrachtet wird. Inhalt in einem Cache wird nur verwendet, um zu antworten, wenn er sich innerhalb des in der Caching-Richtlinie angegebenen Aktualitätszeitraums befindet.

  • Stale content: Elemente im Cache verfallen gemäß den Einstellungen für die Aktualisierung des Caches in der Caching-Richtlinie. Abgelaufene Inhalte sind "veraltet". Im Allgemeinen können abgelaufene Inhalte nicht zum Antworten auf Clientanforderungen verwendet werden. Der Ursprungsserver muss erneut kontaktiert werden, um den neuen Inhalt abzurufen oder zumindest zu überprüfen, ob der zwischengespeicherte Inhalt noch korrekt ist.

  • Validation: Veraltete Elemente im Cache können überprüft werden, um ihre Ablaufzeit zu aktualisieren. Bei der Validierung wird beim Ursprungsserver eingecheckt, um festzustellen, ob der zwischengespeicherte Inhalt noch die neueste Version des Elements darstellt.

  • Invalidation: Bei der Invalidierung werden Inhalte vor dem angegebenen Ablaufdatum aus dem Cache entfernt. Dies ist erforderlich, wenn das Element auf dem Ursprungsserver geändert wurde und ein veraltetes Element im Cache vorhanden ist, was erhebliche Probleme für den Client verursachen würde.

Es gibt viele andere Caching-Begriffe, aber die oben genannten sollen Ihnen den Einstieg erleichtern.

Was kann zwischengespeichert werden?

Bestimmte Inhalte können leichter zwischengespeichert werden als andere. Einige sehr cachefreundliche Inhalte für die meisten Websites sind:

  • Logos und Markenbilder

  • Nicht rotierende Bilder im Allgemeinen (z. B. Navigationssymbole)

  • Stylesheets

  • Allgemeine Javascript-Dateien

  • Downloadbarer Inhalt

  • Media-Dateien

Diese ändern sich in der Regel nur selten, sodass sie davon profitieren können, wenn sie für längere Zeit zwischengespeichert werden.

Einige Punkte, die Sie beim Cachen beachten müssen, sind:

  • HTML-Seiten

  • Bilder drehen

  • Häufig geändertes Javascript und CSS

  • Inhalt mit Authentifizierungs-Cookies angefordert

Einige Elemente, die fast nie zwischengespeichert werden sollten, sind:

  • Vermögenswerte im Zusammenhang mit sensiblen Daten (Bankdaten usw.)

  • Inhalt, der benutzerspezifisch ist und häufig geändert wird

Zusätzlich zu den oben genannten allgemeinen Regeln können Richtlinien angegeben werden, mit denen Sie verschiedene Inhaltstypen entsprechend zwischenspeichern können. Wenn beispielsweise authentifizierte Benutzer alle dieselbe Ansicht Ihrer Site sehen, kann diese Ansicht möglicherweise überall zwischengespeichert werden. Wenn authentifizierte Benutzer eine benutzersensitive Ansicht der Site sehen, die für einige Zeit gültig sein wird, können Sie den Browser des Benutzers anweisen, den Cache zu speichern, zwischengeschaltete Caches jedoch anweisen, die Ansicht nicht zu speichern.

Speicherorte, an denen Webinhalte zwischengespeichert werden

Inhalte können an vielen verschiedenen Stellen in der Lieferkette zwischengespeichert werden:

  • Browser cache: Webbrowser selbst verwalten einen kleinen Cache. In der Regel legt der Browser eine Richtlinie fest, die die wichtigsten Elemente festlegt, die zwischengespeichert werden sollen. Dies können benutzerspezifische Inhalte oder Inhalte sein, deren Download als teuer erachtet wird und die wahrscheinlich erneut angefordert werden.

  • Intermediary caching proxies: Jeder Server zwischen dem Client und Ihrer Infrastruktur kann bestimmte Inhalte wie gewünscht zwischenspeichern. Diese Caches können von ISPs oder anderen unabhängigen Parteien verwaltet werden.

  • Reverse Cache: Ihre Serverinfrastruktur kann einen eigenen Cache für Backend-Dienste implementieren. Auf diese Weise können Inhalte von der Kontaktstelle aus bereitgestellt werden, anstatt bei jeder Anforderung auf die Back-End-Server zuzugreifen.

Jeder dieser Speicherorte kann und kann Elemente häufig gemäß ihren eigenen Caching-Richtlinien und den am Inhaltsursprung festgelegten Richtlinien zwischenspeichern.

Überschriften zwischenspeichern

Die Caching-Richtlinie hängt von zwei verschiedenen Faktoren ab. Die Caching-Entität selbst muss entscheiden, ob akzeptabler Inhalt zwischengespeichert werden soll oder nicht. Es kann sich entscheiden, weniger als erlaubt zu cachen, aber niemals mehr.

Der Großteil des Caching-Verhaltens wird durch die Caching-Richtlinie bestimmt, die vom Inhaltseigentümer festgelegt wird. Diese Richtlinien werden hauptsächlich durch die Verwendung bestimmter HTTP-Header festgelegt.

Durch verschiedene Iterationen des HTTP-Protokolls sind einige unterschiedliche Cache-fokussierte Header mit unterschiedlichem Entwicklungsstand entstanden. Die, auf die Sie wahrscheinlich noch achten müssen, sind unten aufgeführt:

  • Expires: Der Header vonExpires ist sehr einfach, obwohl der Umfang ziemlich begrenzt ist. Grundsätzlich wird eine Zeit in der Zukunft festgelegt, in der der Inhalt abläuft. Zu diesem Zeitpunkt müssen alle Anforderungen für denselben Inhalt an den Ursprungsserver zurückgesendet werden. Dieser Header wird wahrscheinlich am besten nur als Fallback verwendet.

  • Cache-Control: Dies ist der modernere Ersatz für den HeaderExpires. Es wird gut unterstützt und implementiert ein viel flexibleres Design. In fast allen Fällen ist diesExpires vorzuziehen, aber es kann nicht schaden, beide Werte einzustellen. Wir werden die Einzelheiten der Optionen, die Sie mitCache-Control festlegen können, etwas später besprechen.

  • Etag: Der HeaderEtag wird bei der Cache-Validierung verwendet. Der Ursprung kann ein eindeutigesEtag für ein Element bereitstellen, wenn es den Inhalt anfänglich bereitstellt. Wenn ein Cache den verfügbaren Inhalt nach Ablauf validieren muss, kann er dieEtag zurücksenden, die er für den Inhalt hat. Der Ursprung teilt dem Cache entweder mit, dass der Inhalt identisch ist, oder sendet den aktualisierten Inhalt (mit den neuenEtag).

  • Last-Modified: Dieser Header gibt an, wann das Element zuletzt geändert wurde. Dies kann als Teil der Validierungsstrategie verwendet werden, um frischen Inhalt sicherzustellen.

  • Content-Length: Obwohl nicht speziell am Caching beteiligt, ist es wichtig, den HeaderContent-Length festzulegen, wenn Caching-Richtlinien definiert werden. Bestimmte Software weigert sich, Inhalte zwischenzuspeichern, wenn die Größe des Inhalts, für den Speicherplatz reserviert werden muss, nicht bekannt ist.

  • Vary: Ein Cache verwendet normalerweise den angeforderten Host und den Pfad zur Ressource als Schlüssel zum Speichern des Cache-Elements. Der HeaderVary kann verwendet werden, um Caches anzuweisen, auf einen zusätzlichen Header zu achten, wenn entschieden wird, ob eine Anforderung für dasselbe Element gilt. Dies wird am häufigsten verwendet, um Caches anzuweisen, den Schlüssel auch anhand desAccept-Encoding-Headers einzugeben, damit der Cache zwischen komprimiertem und nicht komprimiertem Inhalt unterscheiden kann.

Nebenbei über den Vary Header

Der HeaderVarybietet Ihnen die Möglichkeit, verschiedene Versionen desselben Inhalts auf Kosten der Verwässerung der Einträge im Cache zu speichern.

Im Fall vonAccept-Encoding ermöglicht das Setzen des HeadersVary eine kritische Unterscheidung zwischen komprimiertem und nicht komprimiertem Inhalt. Dies ist erforderlich, um diese Elemente für Browser bereitzustellen, die nicht mit komprimierten Inhalten umgehen können. Dies ist erforderlich, um eine grundlegende Benutzerfreundlichkeit zu gewährleisten. Ein Merkmal, das Ihnen sagt, dassAccept-Encoding ein guter Kandidat fürVary sein kann, ist, dass es nur zwei oder drei mögliche Werte hat.

Elemente wieUser-Agent scheinen auf den ersten Blick eine gute Möglichkeit zu sein, zwischen mobilen und Desktop-Browsern zu unterscheiden, um verschiedene Versionen Ihrer Website bereitzustellen. Da jedoch die Zeichenfolgen vonUser-Agentnicht dem Standard entsprechen, werden wahrscheinlich viele Versionen desselben Inhalts in Zwischen-Caches mit einer sehr niedrigen Cache-Trefferquote erstellt. DerVary-Header sollte sparsam verwendet werden, insbesondere wenn Sie nicht in der Lage sind, die Anforderungen in von Ihnen kontrollierten Zwischencaches zu normalisieren (was beispielsweise möglich sein kann, wenn Sie ein Content Delivery-Netzwerk nutzen).

Wie sich Cache-Kontroll-Flags auf das Caching auswirken

Oben haben wir erwähnt, wie der Header vonCache-Controlfür die moderne Cache-Richtlinienspezifikation verwendet wird. Mit diesem Header können verschiedene Richtlinienanweisungen festgelegt werden, wobei mehrere Anweisungen durch Kommas getrennt werden.

Einige derCache-Control-Optionen, mit denen Sie die Caching-Richtlinie Ihres Inhalts festlegen können, sind:

  • no-cache: Diese Anweisung gibt an, dass zwischengespeicherte Inhalte bei jeder Anforderung erneut überprüft werden müssen, bevor sie an einen Client gesendet werden. Auf diese Weise wird der Inhalt sofort als veraltet markiert, es können jedoch Verlängerungstechniken verwendet werden, um ein erneutes Herunterladen des gesamten Elements zu vermeiden.

  • no-store: Diese Anweisung gibt an, dass der Inhalt in keiner Weise zwischengespeichert werden kann. Dies ist angemessen, um festzulegen, ob die Antwort vertrauliche Daten darstellt.

  • public: Dies markiert den Inhalt als öffentlich, was bedeutet, dass er vom Browser und allen Zwischen-Caches zwischengespeichert werden kann. Bei Anforderungen, die die HTTP-Authentifizierung verwenden, sind die Antworten standardmäßig mitprivate gekennzeichnet. Dieser Header überschreibt diese Einstellung.

  • private: Dies markiert den Inhalt alsprivate. Private Inhalte können vom Browser des Benutzers gespeichert werden, müssen jedochnot von Zwischenparteien zwischengespeichert werden. Dies wird häufig für benutzerspezifische Daten verwendet.

  • max-age: Diese Einstellung konfiguriert das maximale Alter, in dem der Inhalt zwischengespeichert werden darf, bevor er erneut validiert oder vom Ursprungsserver erneut heruntergeladen werden muss. Im Wesentlichen ersetzt dies denExpires-Header für das moderne Surfen und ist die Grundlage für die Bestimmung der Aktualität eines Inhalts. Diese Option nimmt ihren Wert in Sekunden mit einer maximal gültigen Frischezeit von einem Jahr (31536000 Sekunden) an.

  • s-maxage: Dies ist der Einstellungmax-age sehr ähnlich, da es angibt, wie lange der Inhalt zwischengespeichert werden kann. Der Unterschied besteht darin, dass diese Option nur auf zwischengeschaltete Caches angewendet wird. Die Kombination mit den oben genannten Faktoren ermöglicht eine flexiblere Erstellung von Richtlinien.

  • must-revalidate: Dies zeigt an, dass die durchmax-age,s-maxage oder denExpires-Header angegebenen Frische-Informationen strikt eingehalten werden müssen. Veraltete Inhalte können unter keinen Umständen bereitgestellt werden. Dies verhindert, dass zwischengespeicherte Inhalte bei Netzwerkunterbrechungen und ähnlichen Szenarien verwendet werden.

  • proxy-revalidate: Dies funktioniert genauso wie die obige Einstellung, gilt jedoch nur für zwischengeschaltete Proxys. In diesem Fall kann der Browser des Benutzers möglicherweise verwendet werden, um veraltete Inhalte im Falle einer Netzwerkunterbrechung bereitzustellen. Zwischen-Caches können jedoch nicht für diesen Zweck verwendet werden.

  • no-transform: Diese Option teilt den Caches mit, dass sie den empfangenen Inhalt unter keinen Umständen aus Leistungsgründen ändern dürfen. Dies bedeutet beispielsweise, dass der Cache keine komprimierten Versionen von Inhalten senden kann, die er nicht komprimiert vom Ursprungsserver erhalten hat, und dies ist nicht zulässig.

Diese können auf verschiedene Arten kombiniert werden, um ein unterschiedliches Caching-Verhalten zu erzielen. Einige sich gegenseitig ausschließende Werte sind:

  • no-cache,no-store und das reguläre Caching-Verhalten, das durch das Fehlen von beidem angezeigt wird

  • public undprivate

Die Optionno-store ersetzt die Optionno-cache, wenn beide vorhanden sind. Für Antworten auf nicht authentifizierte Anforderungen wirdpublic impliziert. Für Antworten auf authentifizierte Anforderungen wirdprivate impliziert. Diese können überschrieben werden, indem die entgegengesetzte Option in den Header vonCache-Controlaufgenommen wird.

Caching-Strategie entwickeln

In einer perfekten Welt könnte alles aggressiv zwischengespeichert werden und Ihre Server würden nur gelegentlich kontaktiert, um Inhalte zu validieren. In der Praxis ist dies jedoch nicht häufig der Fall. Daher sollten Sie versuchen, vernünftige Caching-Richtlinien festzulegen, die darauf abzielen, ein Gleichgewicht zwischen der Implementierung von langfristigem Caching und der Reaktion auf die Anforderungen eines sich ändernden Standorts herzustellen.

Häufige Probleme

Es gibt viele Situationen, in denen Caching nicht implementiert werden kann oder sollte, aufgrund der Art der Erstellung des Inhalts (dynamisch pro Benutzer generiert) oder der Art des Inhalts (z. B. vertrauliche Bankinformationen). Ein weiteres Problem, mit dem viele Administratoren beim Einrichten des Cachings konfrontiert sind, ist die Situation, in der ältere Versionen Ihres Inhalts nicht mehr aktuell sind, obwohl neue Versionen veröffentlicht wurden.

Dies sind häufig auftretende Probleme, die schwerwiegende Auswirkungen auf die Cache-Leistung und die Genauigkeit der von Ihnen bereitgestellten Inhalte haben können. Wir können diese Probleme jedoch abmildern, indem wir Caching-Richtlinien entwickeln, die diese Probleme antizipieren.

Generelle Empfehlungen

Während Ihre Situation die von Ihnen verwendete Caching-Strategie diktiert, können die folgenden Empfehlungen Sie zu vernünftigen Entscheidungen führen.

Sie können bestimmte Schritte ausführen, um die Cachetrefferquote zu erhöhen, bevor Sie sich Gedanken über die von Ihnen verwendeten spezifischen Header machen. Einige Ideen sind:

  • Establish specific directories for images, css, and shared content: Wenn Sie Inhalte in dedizierten Verzeichnissen ablegen, können Sie von jeder Seite Ihrer Website aus problemlos auf sie verweisen.

  • Use the same URL to refer to the same items: Da die Caches sowohl vom Host als auch vom Pfad zum angeforderten Inhalt abweichen, stellen Sie sicher, dass Sie auf allen Ihren Seiten auf dieselbe Weise auf Ihren Inhalt verweisen. Die bisherige Empfehlung erleichtert dies erheblich.

  • Use CSS image sprites where possible: CSS-Bild-Sprites für Elemente wie Symbole und Navigation verringern die Anzahl der Roundtrips, die zum Rendern Ihrer Site erforderlich sind, und ermöglichen Ihrer Site, dieses einzelne Sprite für eine lange Zeit zwischenzuspeichern.

  • Host scripts and external resources locally where possible: Wenn Sie Javascript-Skripte und andere externe Ressourcen verwenden, sollten Sie diese Ressourcen auf Ihren eigenen Servern hosten, wenn die richtigen Header nicht im Upstream bereitgestellt werden. Beachten Sie, dass Sie alle Aktualisierungen berücksichtigen müssen, die an der Upstream-Ressource vorgenommen wurden, damit Sie Ihre lokale Kopie aktualisieren können.

  • Fingerprint cache items: Bei statischen Inhalten wie CSS- und Javascript-Dateien kann es angebracht sein, jedes Element mit einem Fingerabdruck zu versehen. Dies bedeutet, dass dem Dateinamen eine eindeutige Kennung hinzugefügt wird (häufig ein Hash der Datei), sodass beim Ändern der Ressource der neue Ressourcenname angefordert werden kann, wodurch die Anforderungen den Cache ordnungsgemäß umgehen. Es gibt eine Vielzahl von Tools, mit denen Sie Fingerabdrücke erstellen und die Verweise auf diese in HTML-Dokumenten ändern können.

Im Hinblick auf die Auswahl der richtigen Überschriften für verschiedene Elemente kann Folgendes als allgemeine Referenz dienen:

  • Allow all caches to store generic assets: Statischer Inhalt und Inhalt, der nicht benutzerspezifisch ist, können und sollten an allen Punkten in der Lieferkette zwischengespeichert werden. Auf diese Weise können zwischengeschaltete Caches mit dem Inhalt für mehrere Benutzer antworten.

  • Allow browsers to cache user-specific assets: Für Benutzerinhalte ist es häufig akzeptabel und nützlich, das Caching im Browser des Benutzers zuzulassen. Während dieser Inhalt nicht für das Zwischenspeichern auf zwischengeschalteten Caching-Proxys geeignet wäre, ermöglicht das Zwischenspeichern im Browser Benutzern das sofortige Abrufen bei späteren Besuchen.

  • Make exceptions for essential time-sensitive content: Wenn Sie Inhalte haben, die zeitkritisch sind, machen Sie eine Ausnahme von den oben genannten Regeln, damit der veraltete Inhalt in kritischen Situationen nicht bereitgestellt wird. Wenn auf Ihrer Website beispielsweise ein Warenkorb vorhanden ist, sollten die Artikel im Warenkorb sofort angezeigt werden. Abhängig von der Art des Inhalts können die Optionenno-cache oderno-store im HeaderCache-Control festgelegt werden, um dies zu erreichen.

  • Always provide validators: Mit Validatoren können veraltete Inhalte aktualisiert werden, ohne dass die gesamte Ressource erneut heruntergeladen werden muss. Durch Festlegen der HeaderEtag undLast-Modified können Caches ihren Inhalt validieren und erneut bereitstellen, wenn er am Ursprung nicht geändert wurde, wodurch die Last weiter reduziert wird.

  • Set long freshness times for supporting content: Um das Caching effektiv zu nutzen, sollten Elemente, die als unterstützender Inhalt zur Erfüllung einer Anforderung angefordert werden, häufig eine lange Frischeeinstellung aufweisen. Dies ist im Allgemeinen für Elemente wie Bilder und CSS geeignet, die zum Rendern der vom Benutzer angeforderten HTML-Seite aufgerufen werden. Durch das Festlegen längerer Aktualisierungszeiten in Verbindung mit Fingerabdrücken können diese Ressourcen über einen längeren Zeitraum im Cache gespeichert werden. Wenn sich die Assets ändern, macht der geänderte Fingerabdruck das zwischengespeicherte Element ungültig und löst einen Download des neuen Inhalts aus. Bis dahin können die unterstützenden Elemente weit in die Zukunft zwischengespeichert werden.

  • Set short freshness times for parent content: Damit das obige Schema funktioniert, muss das enthaltende Element relativ kurze Frischezeiten aufweisen oder darf überhaupt nicht zwischengespeichert werden. Dies ist normalerweise die HTML-Seite, die den anderen unterstützenden Inhalt aufruft. Der HTML-Code selbst wird häufig heruntergeladen, sodass er schnell auf Änderungen reagieren kann. Der unterstützende Inhalt kann dann aggressiv zwischengespeichert werden.

Der Schlüssel besteht darin, ein Gleichgewicht zu finden, das ein aggressives Zwischenspeichern nach Möglichkeit begünstigt und gleichzeitig die Möglichkeit bietet, Einträge in Zukunft für ungültig zu erklären, wenn Änderungen vorgenommen werden. Ihre Site wird wahrscheinlich eine Kombination von:

  • Aggressiv zwischengespeicherte Elemente

  • Zwischengespeicherte Elemente mit kurzer Frischezeit und der Möglichkeit zur erneuten Validierung

  • Elemente, die überhaupt nicht zwischengespeichert werden sollten

Ziel ist es, Inhalte nach Möglichkeit in die ersten Kategorien zu verschieben und dabei ein akzeptables Maß an Genauigkeit beizubehalten.

Fazit

Wenn Sie sich die Zeit nehmen, um sicherzustellen, dass auf Ihrer Site die richtigen Caching-Richtlinien vorhanden sind, kann dies erhebliche Auswirkungen auf Ihre Site haben. Durch das Zwischenspeichern können Sie die Bandbreitenkosten reduzieren, die mit der wiederholten Bereitstellung desselben Inhalts verbunden sind. Ihr Server kann mit der gleichen Hardware auch einen größeren Datenverkehr verarbeiten. Vielleicht ist es am wichtigsten, dass Kunden eine schnellere Erfahrung auf Ihrer Website haben, was dazu führen kann, dass sie häufiger zurückkehren. Während effektives Web-Caching kein Wundermittel ist, können Sie mit der Einrichtung geeigneter Caching-Richtlinien bei minimalem Aufwand messbare Gewinne erzielen.