Ein Cache ist ein Speicherort, an dem Daten vorübergehend gespeichert werden, um sie bei Bedarf schneller abrufen zu können. Unter Caching oder Cachen versteht man den Speichervorgang dieser Daten. Möglicherweise haben Sie den Begriff „Cache“ auch schon in anderen Zusammenhängen gehört, zum Beispiel als Bezeichnung für einen bequemen Aufbewahrungsort. So können beispielsweise Camper und Wanderer Proviant entlang einer Strecke „cachen“. Werfen wir aber einmal einen genaueren Blick auf die Bedeutung von Caching im Onlinebereich.
In einer idealen Welt würde ein Nutzer, der Ihre Website besucht, über alle erforderlichen Daten verfügen, um die Website schnell auf seinem lokalen Gerät zu rendern. Die Daten befinden sich jedoch an einem anderen Ort, beispielsweise in einem Rechenzentrum oder bei einem Cloud-Service, und es fallen Kosten für das Abrufen der Daten an. Der Nutzer muss dafür Verzögerungen in Kauf nehmen, die durch das Generieren und Laden der Assets entstehen, und Sie tragen dabei die monetären Kosten. Darunter fallen nicht nur die Gebühren für die Bereitstellung Ihrer Inhalte, sondern auch die sogenannten Egress-Kosten, also die Kosten für den Abruf der Inhalte aus dem Speicher, sobald Besucher diese anfordern. Je mehr Traffic Ihre Website generiert, desto höher die Kosten für die Bereitstellung von Inhalten als Antwort auf oft mehrfach gestellte Anfragen.
Und genau hier kommt das Caching ins Spiel, denn damit lassen sich Kopien Ihrer Inhalte speichern, um ihre Auslieferung zu beschleunigen und gleichzeitig Ressourcen zu sparen.
Um zu verstehen, wie Caching funktioniert, müssen wir zunächst einmal verstehen, wie HTTP-Anfragen und -Antworten funktionieren. Wenn ein Nutzer auf einen Link klickt oder die URL Ihrer Website in die Adresszeile eingibt, sendet sein Browser (der Client) eine Anfrage an den Speicherort des Inhalts (Ihren Origin-Server). Der Origin-Server verarbeitet die Anfrage anschließend und sendet eine Antwort an den Client.
Auch wenn es zunächst so aussieht, als würde dies sofort geschehen, braucht der Origin-Server in Wirklichkeit Zeit, um die Anfrage zu verarbeiten, die Antwort zu generieren und sie an den Client zu senden. Außerdem sind viele verschiedene Ressourcen erforderlich, um Ihre Website anzuzeigen. Es müssen also mehrere Anfragen für alle verschiedenen Daten, aus denen Ihre Website besteht, gesendet werden, einschließlich Bilder, HTML- und CSS-Dateien.
An dieser Stelle kommt der lokale Cache des Nutzers ins Spiel. Browser können einige statische Elemente, wie das Header-Bild mit Ihrem Logo und das Stylesheet der Website, auf dem Gerät cachen, um beim nächsten Zugriff auf Ihre Website eine bessere Performance zu erzielen. Diese Art von Cache hilft allerdings nur dem einzelnen Nutzer.
Wenn Sie Assets für jeden Besucher Ihrer Website cachen möchten, sollten Sie einen Remote Cache wie beispielsweise einen Reverse Proxy in Betracht ziehen.
Es gibt verschiedene Cache-Arten, die auf unterschiedlichen Ebenen der Internetinfrastruktur eingesetzt werden und jeweils einem bestimmten Zweck dienen. Sehen wir uns die verschiedenen Cache-Arten einmal genauer an, um herauszufinden, wie sie zu einem optimierten Browsing-Erlebnis beitragen.
Das Caching über ein CDN (Content Delivery Network) sorgt für geringere Latenzzeiten, indem es Ihnen die Möglichkeit bietet, Inhalte näher am Nutzer auszuliefern, was zu einer deutlichen Verbesserung der Ladezeiten führt. Dabei werden Kopien von Inhalten auf Edge-Servern gespeichert, die rund um den Globus verteilt sind. Sobald ein Nutzer Inhalte anfordert, stellt das CDN diese einfach vom nächstgelegenen Edge-Server aus bereit und ist nicht auf die Antwort Ihres Origin-Servers angewiesen. Diese verringerte Auslastung des Origin-Servers ermöglicht wiederum ein höheres Traffic-Aufkommen, da Anfragen auf mehrere Edge-Server verteilt werden können.
Im Gegensatz zum CDN Caching werden beim serverseitigen Caching gebrauchsfertige Kopien von Daten auf dem Origin-Server gespeichert, sodass der Browser des Nutzers nicht jedes Mal, wenn er eine Seite lädt, alle Inhalte neu anfordern muss. Durch die Möglichkeit, wiederverwendbare Datenobjekte zu speichern, wird die Anzahl der Datenbankabfragen minimiert und die Performance Ihrer Website verbessert. Das serverseitige Caching kann verschiedene Formen annehmen, darunter:
Page Caching: Hierbei werden Kopien von HTML-Seiten gespeichert
Object Caching: Speichert wiederverwendbare Datenobjekte
Opcode Caching: Speichert vorab kompilierten PHP-Code
Database Caching: Cacht die Ergebnisse von Datenbankabfragen
Serverseitiges Caching kommt nicht nur bei Inhalten zum Einsatz, sondern auch bei Datenkopien, die von vollständigen Webseiten bis hin zu einzelnen Datenbankabfragen reichen können.
DNS (Domain Name System)-Auflösung bezeichnet den Prozess, mit dem Webbrowser einen Domain-Namen wie www.Fastly.com in die spezifische IP-Adresse des Origin-Servers umwandeln, auf dem die Website gehostet wird. Webbrowser nutzen DNS Caching, um diesen Prozess zu beschleunigen, da die Ergebnisse von DNS-Abfragen lokal gespeichert werden und Anfragen bei zukünftigen Besuchen so schneller aufgelöst werden können. Im Wesentlichen bedeutet dies, dass Ihr Browser seinen eigenen DNS-Cache durchsucht, bevor er die globalen DNS-Server überprüft, um festzustellen, ob die richtige IP-Adresse bereits bekannt ist. Dies beschleunigt die Domain-Auflösung und damit den Zugriff auf die Website erheblich.
Im Gegensatz zu den beiden bisher genannten Caching-Typen ist das DNS Caching auf einzelne Nutzer beschränkt und nicht serverbasiert. Es wird auch speziell für die Auflösung von Domains verwendet, anstatt Inhalte auszuliefern oder Datenbankabfragen zu optimieren.
Das Content Caching oder Zwischenspeichern von Inhalten ist eine allgemeinere Kategorie des Cachings, die sich auf die Duplizierung und Speicherung verschiedener Arten von Webinhalten bezieht, um Nutzern mehr Effizienz zu bieten. Wie das Server-Side Caching und das CDN Caching erfolgt es auf Serverebene. Es kann aber auch an verschiedenen anderen Stellen erfolgen:
Browser Caching: Speichert Webinhalte lokal auf dem Gerät des Nutzers, um ein schnelleres Laden zu ermöglichen, wenn die Website später erneut aufgerufen wird.
Proxy Caching: Webinhalte werden auf Zwischenservern (Proxys) gespeichert, die sich im Netzwerk zwischen dem Nutzer und dem Origin-Server befinden.
Gateway Caching: Speichert eine Kopie der Daten an Gateways innerhalb eines Unternehmensnetzwerks.
Die Inhalte werden auf unterschiedliche Weise und auf mehreren Ebenen gecacht und umfassen eine Vielzahl von Inhaltstypen, darunter Bilder, Videos und vollständige HTML-Seiten. Indem Kopien von Inhalten leichter zugänglich gemacht werden, bietet das Content Caching Nutzern ein schnelleres und reibungsloseres Browsing-Erlebnis, da Websites effizienter geladen werden können und die Bandbreitennutzung im Netzwerk insgesamt reduziert wird.
Da beim Cachen Kopien von Daten für die spätere Verwendung gespeichert werden, müssen Netzwerksysteme wissen, dass diese Kopien bereits vorhanden sind. Wenn die entsprechenden Inhalte im Cache gefunden werden, spricht man von einem „Cache Hit“. Bei Cache Hits werden die Inhalte automatisch direkt vom Edge-Server an den Nutzer ausgeliefert, was zu kürzeren Ladezeiten führt. Die „Cache-Hitrate“ gibt an, wie oft eine Anfrage zu einem Cache Hit führt.
Bei CDNs ist die Cache-Hitrate in der Regel höher als bei anderen serverseitigen Caching-Systemen. Das liegt daran, dass sie mehrere Edge-Server auf der ganzen Welt einsetzen, die jeweils strategisch günstig in der Nähe der Nutzer positioniert sind. Aufgrund der großen Nutzerbasis, die CDNs in der Regel bedienen, ist die Wahrscheinlichkeit hoch, dass ein Nutzer in einer ähnlichen geografischen Region bereits dafür gesorgt hat, dass eine Kopie der Daten auf dem Edge-Server in dieser Region gespeichert wird.
Ein Cache Hit ist aber nicht zwangsläufig immer das Ergebnis einer Nutzeranfrage. Manchmal ist der Server einfach nicht in der Lage, einen bestimmten Inhalt von der Edge auszuliefern, und muss ihn stattdessen vom Origin-Server abrufen. In solchen Fällen spricht man von einem „Cache Miss“, der unterschiedliche Ursachen haben kann:
Erstmalige Anfrage (kalter Cache)
Invalidierung oder Bereinigung des Cache
Kapazitätsgrenzen
Aktualisierungen von Inhalten
Ein Cache Miss kann auch auftreten, wenn Inhalte abgelaufen sind. Inhalte werden auf einem CDN anhand eines Time-to-Live-Werts (TTL) gecacht. Wenn dieser Zeitwert überschritten wird, wird der entsprechende Inhalt aus dem Cache gelöscht. Entwickler und Network Engineers legen TTL-Werte abhängig von der Art des zu cachenden Inhalts fest. Dynamische Inhalte wie Nachrichtenartikel haben in der Regel einen kurzen TTL-Wert von wenigen Sekunden bis Minuten. Im Gegensatz dazu haben CDN Caches in der Regel längere TTL-Werte von Tagen bis Wochen, da dort statische Inhalte wie Bilder, Videos oder CSS- und JavaScript Dateien gespeichert werden.
In bestimmten Situationen kann es von Vorteil sein, den Cache zu bereinigen, es ist aber nicht immer notwendig oder empfehlenswert. Im Folgenden haben wir einige der häufigsten Gründe zusammengefasst, warum Sie Ihren Cache leeren sollten.
Lokal gecachte Daten können mit der Zeit immer mehr Speicherplatz auf Ihrem System beanspruchen. Dies kann beispielsweise auf persönlichen Geräten wie Laptops oder Netbooks problematisch sein, die über eine begrenzte Speicherkapazität verfügen. Indem Sie den Cache leeren, können Sie oft wertvollen Speicherplatz freigeben und so dafür sorgen, dass Ihr Gerät runder läuft.
Gecachte Daten können beschädigt werden oder nicht mehr aktuell sein. Dies kann dazu führen, dass Websites langsamer geladen werden oder nicht länger funktionieren, sodass Sie nicht mehr auf wichtige Funktionen zugreifen können. Oft können Sie diese Probleme beheben und die beschädigten oder veralteten Dateien entfernen, indem Sie Ihren Cache leeren.
Gecachte Daten können sensible Informationen wie Anmeldedaten, Browserverläufe oder andere personenbezogene Daten enthalten. Durch das Leeren des Cache lassen sich diese sensiblen Informationen schnell schützen, indem sie aus Ihrem System entfernt werden.
Es gibt allerdings auch Situationen, in denen es nicht notwendig oder ratsam ist, den Cache zu leeren.
Wenn ein Nutzer seinen Cache leert, löscht er die Daten, die dazu beitragen, dass Websites und Anwendungen schneller geladen werden. Der Nachteil beim Löschen des Cache besteht darin, dass Websites und Anwendungen diese Ressourcen komplett neu laden müssen, wenn diese erneut angefordert werden. Dies kann wiederum langsamere Ladezeiten zur Folge haben, bis der Cache wieder mit Daten gefüllt ist.
Das Leeren des Cache kann zur Behebung bestimmter Performance-Probleme beitragen, die Lösung ist jedoch oft nur vorübergehend. Wird das zugrunde liegende Problem nicht behoben, können die Performance-Probleme erneut auftreten, sobald der Cache erneut mit Daten gefüllt wurde. Um eine langfristige Lösung zu erreichen, ist es entscheidend, die Ursache zu ermitteln und zu beheben.
Einer der Hauptvorteile beim Caching ist die verbesserte Performance. Dieser Mehrwert geht verloren, wenn Sie die Daten in Ihrem Cache löschen.
Wie verwendet Fastly Caching?
Fastly verwendet Caching bei seinem CDN, um die Auslieferung Ihrer Inhalte an Ihre Zielgruppe zu beschleunigen. Indem wir exakte Kopien Ihrer Inhalte auf unseren weltweiten Servern speichern, sorgen wir für eine geringere Latenz und Serverauslastung. So erhalten Ihre Nutzer immer den schnellstmöglichen Zugriff vom nächstgelegenen Server.
Zu den Caching-Funktionen von Fastly gehören auch Instant Purge™ für schnelle Content Updates und anpassbare Caching-Regeln. Unser Ansatz verbessert das Nutzererlebnis durch einen schnelleren Zugriff auf Inhalte und senkt gleichzeitig die Bandbreitennutzung und Egress-Kosten.
Mehr über das Caching mit CDNs