Ein Cache ist ein Speicherort, an dem Daten vorübergehend gespeichert werden, um sie bei Bedarf schneller abrufen zu können. Unter Caching 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.
So funktioniert Caching
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. Ihr Browser kann einige statische Elemente, wie das Header-Bild mit Ihrem Logo und das Stylesheet der Website, auf Ihrem 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.
Welche Arten des Caching gibt es?
Es gibt verschiedene Caching-Arten, die auf unterschiedlichen Ebenen der Internetinfrastruktur eingesetzt werden und jeweils einem bestimmten Zweck dienen. Sehen wir uns die verschiedenen Caching-Arten einmal genauer an, um herauszufinden, wie sie zu einem optimierten Browsing-Erlebnis beitragen.
1. CDN-Caching
CDN-(Content Delivery Network-)Caching reduziert die Latenz, indem es Ihnen ermöglicht, Ihre Inhalte von einem Standort näher am Nutzer auszuliefern, was die Ladezeiten deutlich verbessert. 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.
2. Serverseitiges Caching
Im Gegensatz zum CDN-Caching speichert das serverseitige Caching einsatzbereite Datenkopien auf dem Origin-Server, sodass der Browser des Nutzers jedes Mal beim Laden einer Seite nicht jede einzelne Inhaltsanfrage neu stellen muss. Diese Möglichkeit, wiederverwendbare Datenobjekte zu speichern, minimiert die Anzahl der Datenbank-Abfragen und verbessert die Performance Ihrer Website. Das serverseitige Caching kann verschiedene Formen annehmen, darunter:
Seiten-Caching: speichert eine Kopie der HTML-Seiten
Objekt-Caching: speichert wiederverwendbare Datenobjekte
Opcode-Caching: speichert vorkompilierten PHP-Code
Datenbank-Caching: speichert die Ergebnisse von Datenbankabfragen zwischen
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.
3. DNS-Caching
DNS-(Domain Name System-)Auflösung ist der Prozess, den Webbrowser verwenden, um einen Domainnamen, wie www.Fastly.com, in die spezifische IP-Adresse des Ursprungs zu übersetzen, der die Website hostet. 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 prüft Ihr Browser seinen eigenen DNS-Cache, bevor er die globalen DNS-Server abfragt, um festzustellen, ob die korrekte 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 Domain-Namen verwendet, anstatt Inhalte auszuliefern oder Datenbankabfragen zu optimieren.
4. Content-Caching
Content-Caching ist eine allgemeinere Kategorie des Cachings, die sich auf die Duplizierung und Speicherung verschiedener Arten von Webinhalten bezieht, um Nutzern eine effizientere Bereitstellung zu ermöglichen. Das Content-Caching erfolgt auf Serverebene (wie beim Server-Side Caching und CDN Caching). 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 von 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 Content-Caching Nutzern ein schnelleres und reibungsloseres Browsing-Erlebnis, da Websites effizienter geladen werden können und die Bandbreitennutzung im Netzwerk insgesamt reduziert wird.
CDN und Caching
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 zahlreiche Edge-Server auf der ganzen Welt einsetzen, die strategisch günstig in der Nähe der Endnutzer 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. Dies wird als „Cache Miss“ bezeichnet und kann unterschiedliche Ursachen haben:
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 tendenziell längere TTL-Werte von Tagen bis Wochen, da der Inhalt wie Bilder, Videos, CSS und JavaScript-Daten statisch ist.
Sollten Sie Ihren Cache bereinigen?
In bestimmten Situationen kann es sinnvoll sein, den Cache zu leeren, aber das ist nicht immer notwendig oder empfehlenswert. Im Folgenden haben wir einige der häufigsten Gründe zusammengefasst, warum Sie Ihren Cache leeren sollten.
Speicherplatz freigeben
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.
Behebung von Performance-Problemen
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.
Datenschutz verbessern
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.
1. Datenverlust
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 zu längeren Ladezeiten führen, bis der Cache wieder aufgebaut ist.
2. Temporäre Behebung
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.
3. Verlust von Performance-Vorteilen
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 setzt Caching in seinem CDN ein, um die Auslieferung Ihrer Inhalte an Ihr Publikum zu beschleunigen. Indem wir exakte Kopien Ihrer Inhalte auf unseren Servern weltweit speichern, reduzieren wir die Latenz und die Serverauslastung, um sicherzustellen, dass Ihre Nutzer den schnellsten Zugriff über den nächstgelegenen Server erhalten.
Zu den Caching-Funktionen von Fastly gehören Instant Purge™ für schnelle Inhaltsupdates und anpassbare Caching-Regeln. Unser Ansatz verbessert das Nutzererlebnis durch einen schnelleren Zugriff auf Inhalte und senkt gleichzeitig die Bandbreitennutzung und Egress-Kosten.