Host Europe Blog

HTTP-Cache: Pagespeed meets Ressourcenschonung

Das hält sich noch eine Weile frisch

Den Begriff „Cache“ hat sicher jeder Webmaster schon einmal gehört oder gelesen. Gemeint ist damit der verborgene Speicher, der bereits geladene Inhalte auf Abfrage schnell bereitstellen kann. Der Endbenutzer bekommt außer dem Geschwindigkeitszuwachs in der Regel nichts vom Vorgang der Zwischenspeicherung mit.
Dieser Puffer kann für unterschiedliche Einsatzzwecke verwendet werden, je nachdem wo und mit Hilfe welcher Technik er eingesetzt wird.

Der Browsercache

Der wohl häufigste Ort, an dem man auf einen Cache trifft, ist der eigene Internetbrowser. Die Größe des Browsercaches ist einstellbar, d.h. die Menge der Inhalte, die durch das Zwischenspeichern bereitgestellt werden kann, ist variabel und nach Belieben definierbar. Verwendet wird ein Verzeichnis, üblicherweise auf der lokalen Festplatte, in dem temporäre Internet-Dateien abgelegt werden, um sie später lokal abzurufen, anstatt sie über die Verbindung zum Internet zu laden.

Manchmal ist es sinnvoll, diesen Speicherbereich zu löschen, um wieder eine „frische“ Ansicht der Web-Inhalte zu erhalten. Konfigurierbar ist ebenfalls, ob diese Daten bei Beendigung jeder Internetsitzung gelöscht werden sollen. Auf diese Weise wird sichergestellt, dass mindestens jede neue Internetsitzung aktuelle Inhalte zeigt, da diese initiativ einmalig für den (mittlerweile leeren) Cache geladen werden müssen.

Ein Webmaster hat auf die Verwendung dieses Puffers insofern Einfluss, als dass er über HTTP-Header relativ genau angeben kann, wie sich der Cache verhalten soll, welche Dateitypen oder Ressourcen aus bestimmten Webverzeichnissen vom Caching ausgeschlossen sind oder zu welchem Zeitpunkt sie neu beim eigentlichen Webserver angefragt werden sollen.

Shared Caches

Der (Forward-)Proxy-Cache

Ein dedizierter Cache-Proxy-Server sammelt alle Website-Anfragen (Requests) aus dem eigenen Netzwerk und leitet diese an den vermeintlichen Webserver weiter. Die entsprechenden Antworten (Responds) des Webservers kann er schließlich, nach dem ersten Aufruf (immerhin noch innerhalb des eigenen Netzwerks) zwischengespeichert, an alle Clients ausliefern. Auf diese Weise werden sowohl Web-Traffic als auch die übliche Latenz minimiert.

Der Gateway-, Reverse-Proxy-, bzw. Surrogate-Cache

Ein Gateway-Server arbeitet im Prinzip nach der gleichen Funktionsweise, liefert jedoch auf Anfrage die präparierten Webseiteninhalte aus dem Zwischenspeicher und fragt in zwischendurch Ressourcen auf deren Aktualität hin beim eigentlichen Webserver ab. Der Gateway steht nicht im Client-Netzwerk, sondern wird oft in Kombination mit einem Loadbalancer und weiteren Gateways verwendet. Auf diese Weise werden unter anderem Performanz und Verfügbarkeit sichergestellt.

Content Delivery Networks (CDN)

Ein CDN bildet einen Verbund aus Gateways, den sogenannten „Replica-Servern“, die verteilt über das Internet alle Anfragen weltweit verteilter Clientsysteme möglichst ökonomisch bedienen zu können. Verschiedene Faktoren wie z.B. Latenzzeit und geografische Entfernung werden über ein Request-Routing-System ausgewertet und der günstigste Gateway zur Auslieferung der Web-Inhalte ausgewählt.

ANGABEN ZUM CACHE

Um festzulegen, welche Inhalte aus dem Zwischenspeicher geladen werden sollen, kann man sich folgender Möglichkeiten bedienen:

  1. Angaben in Metatags, wie beispielsweise:



    Diese Angaben sind allerdings innerhalb des HTML-Seitenquelltexts platziert und werden daher nicht von Proxies ausgewertet. Darüber hinaus werden sie auch nicht von allen Browsern unterstützt.
  2. Vorgaben innerhalb der Webserverkonfiguration selbst oder im jeweiligen Webverzeichnis in einer Datei namens „.htaccess“. Neben der Verwendung für den Cache ist diese Datei für Webmaster auch aus anderen Szenarien ein Begriff. Rewrite-Rules werden hier ebenso definiert wie die Restriktion des Zugriffs von Suchmaschinen-Bots.



    Die hier gemachten Angaben werden sowohl von Proxy-Servern akzeptiert und ausgewertet, als auch von den gängigen Browsern verstanden.

Ein Beispiel

Anhand der folgenden Testseiten können die unterschiedlichen Ladezeiten mit und ohne Zwischenspeicher beobachtet werden:

Die mobile Version verlassen