Zum Inhalt springen
BeoHosting
BeoHosting
Technik

Was ist Caching und welche Caching-Arten gibt es

BeoHosting Team··10 Min. Lesezeit Lesezeit
Was ist Caching und welche Caching-Arten gibt es

Was ist Caching und warum ist es wichtig

Caching ist eine Technik zum Speichern einer Datenkopie an einem Ort, von dem sie schneller abgerufen werden kann, anstatt sie jedes Mal aus der Originalquelle zu generieren oder zu holen. Stellen Sie sich Caching wie das Anfertigen einer Fotokopie eines häufig verwendeten Dokuments vor, anstatt jedes Mal ins Archiv für das Original zu gehen. Im Kontext von Websites beschleunigt Caching das Laden von Seiten dramatisch, reduziert die Serverbelastung und verbessert das Nutzererlebnis. Ohne Caching würde jede Seitenanfrage die Verarbeitung von PHP-Code, Datenbankabfragen und HTML-Generierung von Grund auf erfordern.

Caching funktioniert nach dem Prinzip des temporären Speicherns der Ergebnisse aufwendiger Operationen. Wenn ein Nutzer eine Seite zum ersten Mal besucht, generiert der Server sie vollständig und speichert das Ergebnis im Cache. Jeder nachfolgende Nutzer erhält die zwischengespeicherte Version, die in einem Bruchteil der Zeit ausgeliefert wird. Eine typische WordPress-dynamische Seite ohne Cache lädt in 2 bis 5 Sekunden, während die zwischengespeicherte Version derselben Seite in 50 bis 200 Millisekunden ausgeliefert werden kann – eine 10- bis 100-fache Verbesserung.

Browser-Caching

Wie der Browser-Cache funktioniert

Browser-Caching ist die einfachste und nächste Form des Cachings, die direkt auf dem Gerät des Nutzers stattfindet. Wenn Sie eine Website besuchen, lädt der Browser HTML, CSS, JavaScript, Bilder und Schriftarten vom Server herunter. Der Browser-Cache speichert diese Dateien lokal, sodass er sie beim nächsten Besuch nicht erneut vom Server herunterladen muss. Das ist der Grund, warum die Seite beim zweiten Mal viel schneller lädt als beim ersten Mal.

HTTP-Cache-Header

Der Server steuert das Browser-Caching durch HTTP-Header, die dem Browser mitteilen, wie lange er bestimmte Dateien speichern soll. Der Cache-Control-Header ist der wichtigste und kann Direktiven enthalten wie max-age, das definiert, wie viele Sekunden der Browser die Datei speichern soll, no-cache, das dem Browser sagt, dass er vor Verwendung des Caches mit dem Server prüfen muss, no-store, das Caching vollständig verbietet, und public oder private, das bestimmt, ob Vermittler wie CDNs den Inhalt zwischenspeichern dürfen.

Der Expires-Header ist eine ältere Methode zur Cache-Einstellung, die das genaue Datum und die Zeit definiert, zu der der Cache abläuft. Der ETag-Header ist ein Versionsidentifikator der Datei, den der Browser an den Server sendet, um zu prüfen, ob sich die Datei geändert hat. Wenn nicht, gibt der Server eine 304 Not Modified-Antwort ohne Inhalt zurück, was Bandbreite spart. Der Last-Modified-Header funktioniert ähnlich, verwendet aber das Datum der letzten Änderung statt eines Identifikators. In der Praxis verwenden Sie Cache-Control mit max-age für statische Ressourcen und ETag für dynamische Inhalte.

Praktische Konfiguration

Für optimales Browser-Caching setzen Sie lange max-age-Werte für statische Ressourcen, die sich selten ändern. CSS- und JavaScript-Dateien mit versionierten Namen wie style.v2.css können eine max-age von einem Jahr haben, weil Sie bei Änderung des Inhalts den Dateinamen ändern. Bilder können eine max-age von 30 Tagen bis zu einem Jahr haben, je nachdem, wie oft Sie sie ändern. HTML-Seiten sollten eine kurze max-age oder no-cache haben, weil sich der Inhalt häufiger ändert. In Apache verwenden Sie die mod_expires-Direktive in der .htaccess-Datei und in Nginx die expires-Direktive in der Konfiguration.

Server-Caching

Opcode-Caching

PHP ist eine interpretierte Sprache, was bedeutet, dass PHP-Code jedes Mal in Maschinencode übersetzt wird, wenn eine Seite geladen wird. Opcode-Caching eliminiert diese Wiederholung, indem es den übersetzten Maschinencode im Speicher speichert. OPcache ist der integrierte PHP-Mechanismus für Opcode-Caching, der mit PHP 5.5 und neueren Versionen kommt. Wenn OPcache aktiv ist, wird der PHP-Code nur einmal übersetzt, und jede nachfolgende Anfrage verwendet den zuvor übersetzten Code aus dem Speicher. Dies kann PHP-Anwendungen ohne jegliche Codeänderungen 2- bis 5-mal beschleunigen.

Full-Page-Caching

Full-Page-Caching oder Page Cache speichert die komplette HTML-Ausgabe einer Seite, sodass der PHP-Code für zwischengespeicherte Anfragen überhaupt nicht ausgeführt wird. Dies ist die effektivste Form des Cachings für WordPress und ähnliche CMS-Plattformen, weil sie alle PHP-Verarbeitung und Datenbankabfragen eliminiert. Der Server liefert einfach eine statische HTML-Datei aus dem Cache aus. Nginx FastCGI Cache und Apache mod_cache sind Server-Level-Lösungen, während WordPress-Plugins wie WP Super Cache und W3 Total Cache Page Cache auf Anwendungsebene implementieren.

Konfiguration des Server-Cache

Auf einem Nginx-Server definiert die Direktive fastcgi_cache eine Cache-Zone im Speicher, fastcgi_cache_valid legt fest, wie lange der Cache für verschiedene HTTP-Statuscodes gilt, und fastcgi_cache_key definiert den Schlüssel, mit dem der Cache identifiziert wird, in der Regel eine Kombination aus Anfragemethode, Host und URI. Es ist wichtig, Ausnahmen ordnungsgemäß zu konfigurieren, sodass POST-Anfragen, Seiten mit Cookies für angemeldete Nutzer, Admin-Seiten und Seiten mit Query-Parametern nicht zwischengespeichert werden. Bei BeoHosting verwenden unsere Server eine optimierte Nginx-Konfiguration mit FastCGI-Cache für maximale Leistung von WordPress-Websites.

Object-Caching

Was ist Object Cache

Object-Caching speichert die Ergebnisse von Datenbankabfragen und anderen aufwendigen Operationen in einer schnellen In-Memory-Datenbank, anstatt diese Abfragen bei jedem Seitenaufruf erneut auszuführen. WordPress verfügt über einen integrierten Object-Cache-Mechanismus, speichert Daten aber standardmäßig nur während einer Anfrage. Mit einer Persistent-Object-Cache-Lösung wie Redis oder Memcached bleiben zwischengespeicherte Objekte zwischen Anfragen im Speicher, was die Anzahl der Datenbankabfragen dramatisch reduziert.

Redis als Object Cache

Redis ist eine In-Memory-Datenbank, die Daten im RAM mit optionaler persistenter Speicherung auf der Festplatte speichert. Für WordPress verbindet das Redis Object Cache-Plugin die WordPress Object Cache API mit dem Redis-Server. Eine typische WordPress-Website führt 50 bis 200 Datenbankabfragen pro Seite aus. Mit Redis Object Cache werden die meisten dieser Abfragen eliminiert, weil die Ergebnisse aus dem Speicher gelesen werden, der hunderte Male schneller als die Festplatte ist. Redis unterstützt verschiedene Datenstrukturen einschließlich Strings, Hashes, Listen, Sets und sortierter Sets, was es äußerst flexibel macht.

Memcached als Alternative

Memcached ist eine weitere beliebte Lösung für Object-Caching, die einfacher als Redis ist, aber für die meisten WordPress-Websites ausreicht. Memcached speichert Daten ausschließlich im Speicher ohne Möglichkeit der persistenten Speicherung, was bedeutet, dass alle zwischengespeicherten Daten beim Neustart des Servers verloren gehen. Der Vorteil von Memcached ist ein geringerer Speicherverbrauch pro Schlüssel und sehr stabile Leistung unter hoher Last. Für die meisten Websites macht die Wahl zwischen Redis und Memcached keinen merklichen Leistungsunterschied.

Page Caching für CMS

WordPress-Caching-Plugins

Das WordPress-Ökosystem bietet eine Vielzahl von Plugins für Page Caching mit unterschiedlichen Funktionen und Komplexität. WP Super Cache ist das beliebteste kostenlose Plugin, das statische HTML-Dateien generiert und sie direkt ohne PHP-Verarbeitung ausliefert. W3 Total Cache ist eine umfassendere Lösung, die Page Cache, Browser Cache, Object Cache und CDN-Integration kombiniert, aber komplexer zu konfigurieren ist. WP Rocket ist ein Premium-Plugin, das ein hervorragendes Gleichgewicht zwischen Leistung und Einfachheit mit automatischer Konfiguration und erweiterten Optimierungen bietet.

Cache-Invalidierung

Die größte Herausforderung beim Caching ist die Invalidierung – wie und wann veralteter Cache gelöscht wird. Wenn Sie einen neuen Blog-Beitrag veröffentlichen, aber der Cache die alte Version der Startseite anzeigt, werden Besucher den neuen Inhalt nicht sehen. Gute Cache-Plugins löschen automatisch relevante Cache-Dateien, wenn sich der Inhalt ändert. Beispielsweise sollten beim Veröffentlichen eines neuen Beitrags der Cache der Startseite, der Kategorieseite, zu der der Beitrag gehört, der Archivseiten nach Datum und der Sitemap gelöscht werden. Manuelles Leeren des gesamten Caches sollte vermieden werden, weil es einen vorübergehenden Leistungsabfall verursacht, bis der Cache wieder aufgebaut ist.

CDN-Caching

Wie ein CDN funktioniert

Ein Content Delivery Network oder CDN ist ein Netzwerk von Servern, die weltweit verteilt sind, Kopien Ihrer Website speichern und Inhalte vom geografisch nächstgelegenen Server an den Besucher ausliefern. Wenn ein Besucher aus Tokio auf Ihre in Belgrad gehostete Website zugreift, reist die Anfrage ohne CDN über den Ozean, was 200 bis 300 Millisekunden Latenz hinzufügt. Mit CDN wird der Inhalt vom CDN-Server in Tokio oder einer nahen Region mit einer Latenz von nur 10 bis 30 Millisekunden ausgeliefert.

Beliebte CDN-Dienste

Der Cloudflare-CDN-Dienst ist der beliebteste CDN-Dienst mit einem kostenlosen Plan, der CDN, DDoS-Schutz, SSL-Zertifikat und grundlegende Optimierungen umfasst. Cloudflare hat über 300 Rechenzentren weltweit, einschließlich Standorten in der Region wie Wien und Bukarest. BunnyCDN ist eine budgetfreundliche Alternative mit Bezahlung nach Verbrauch und hervorragender Leistung. AWS CloudFront, Google Cloud CDN und Azure CDN sind Enterprise-Lösungen, die in Cloud-Plattformen integriert sind. Für WordPress-Websites ist Cloudflare am einfachsten einzurichten mit einem dedizierten WordPress-Plugin, das den Cache bei der Veröffentlichung von Inhalten automatisch leert.

Edge-Caching

Moderne CDNs bieten Edge-Computing-Möglichkeiten, bei denen die Anwendungslogik auf CDN-Servern statt auf dem Origin-Server ausgeführt wird. Cloudflare Workers, Vercel Edge Functions und AWS Lambda@Edge ermöglichen das Ausführen von Code an Edge-Standorten zur Inhaltspersonalisierung, A/B-Tests, Weiterleitungen und Authentifizierung ohne Kommunikation mit dem Origin-Server. Edge-Caching kombiniert mit Edge Computing kann vollständig personalisierte Seiten mit CDN-Geschwindigkeit ausliefern, was eine revolutionäre Änderung in der Web-Leistung ist.

Caching-Strategien

Cache-aside-Muster

Cache-aside oder Lazy Loading ist das häufigste Caching-Muster, bei dem die Anwendung zuerst den Cache nach den angeforderten Daten prüft. Wenn die Daten im Cache existieren, wird das als Cache-Hit bezeichnet, und sie werden sofort zurückgegeben. Wenn sie nicht existieren, ist es ein Cache-Miss, und die Anwendung ruft die Daten aus der Datenbank ab, speichert sie im Cache und gibt sie dann an den Nutzer zurück. Dieses Muster ist einfach zu implementieren und funktioniert gut für lese-intensive Anwendungen, bei denen Daten viel häufiger gelesen werden, als sie sich ändern.

Write-through und Write-behind

Das Write-through-Muster schreibt Daten gleichzeitig in den Cache und in die Datenbank, wodurch garantiert wird, dass der Cache immer aktuell ist, aber die Schreiblatenz erhöht wird. Das Write-behind- oder Write-back-Muster schreibt Daten zuerst in den Cache und asynchron in die Datenbank, wodurch die Schreiblatenz reduziert wird, aber das Risiko besteht, Daten zu verlieren, wenn der Server abstürzt, bevor die Daten in die Datenbank geschrieben werden. Für die meisten Webanwendungen ist Cache-aside mit intelligenter Invalidierung die beste Wahl, weil es Leistung und Konsistenz ausbalanciert.

Fazit

Caching ist eine grundlegende Technik für Website-Leistung, die auf mehreren Ebenen funktioniert, vom Browser bis zum CDN. Der Browser-Cache eliminiert unnötige Downloads statischer Ressourcen, der Server-Cache beschleunigt die Generierung dynamischer Seiten, der Object-Cache reduziert die Datenbankbelastung, der Page-Cache eliminiert die PHP-Verarbeitung und der CDN-Cache bringt Inhalte näher an Nutzer weltweit. Die Kombination dieser Techniken kann Ihre Website 10- bis 100-mal beschleunigen und das Nutzererlebnis erheblich verbessern. Bei BeoHosting bieten wir Hosting, das für Leistung optimiert ist, mit OPcache, Redis Object Cache und Unterstützung für CDN-Integration. Überprüfen Sie die Geschwindigkeit Ihrer Website.

BeoHosting Team

10+ Jahre Erfahrung — Spezialisten für Webhosting und Infrastruktur

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Zuletzt aktualisiert: