Zum Inhalt springen
Der Guide für ein smartes Leben.
VG Wort Pixel
Caching-Strategie

Caching: Bessere Performance

Schnell ladende Seiten sind wichtig - dabei kommt es entscheidend auch auf die richtige Caching-Strategie an: damit nicht geänderte Dateien nicht unnötig geladen werden müssen.

Autor: Dr. Florence Maurice • 2.12.2011 • ca. 2:55 Min

Caching: Bessere Performance
Caching: Bessere Performance
© Internet Magazin
Inhalt
  1. Caching: Bessere Performance
  2. Expires
  3. Die richtige Strategie

Weit verbreitet sind zwei Meinungen zum Caching: Caching ist schlecht, da man damit die Kontrolle über die eigenen Dokumente abgibt. Caching lässt sich gut über das entsprechende meta-Element im Dokument steuern. Beides stimmt nicht. Denn Caching ist eine ganz wesentliche Technik, um die ...

Weit verbreitet sind zwei Meinungen zum Caching:

  1. Caching ist schlecht, da man damit die Kontrolle über die eigenen Dokumente abgibt.
  2. Caching lässt sich gut über das entsprechende meta-Element im Dokument steuern.
Beides stimmt nicht. Denn Caching ist eine ganz wesentliche Technik, um die Seiten-Performance zu verbessern. Benutzer wollen Websites, die schnell laden. Am schnellsten laden Dokumente, die gar nicht vom Originalwebserver geladen werden, sondern aus einem Cache wie dem Browser oder einem Proxyserver. Und: Schnelle Websites sind nicht nur für Besucher wichtig, sondern werden auch von Google honoriert, wie eine Meldung aus dem Google Webmastercentral Blog im April 2010 bekannt gab. Um aber zu verhindern, dass veraltete Seiten ausgeliefert werden, brauchen Sie die richtige Strategie - und genau darum geht es im Artikel. Außerdem erfahren Sie, warum die meta-Angabe im Header des HTML-Dokuments nichts bringt und was man stattdessen einsetzt.

Politik der kurzen Wege

Cache bezeichnet laut Wikipedia "einen schnellen Puffer-Speicher, der Zugriffe auf ein langsames Hintergrundmedium nach Möglichkeit vermeidet. Meist werden hierzu Inhalte/Daten gepuffert, die bereits einmal verwendet wurden, um beim nächsten Zugriff schneller zur Verfügung zu stehen".Websites werden hauptsächlich an zwei Stellen gespeichert: im Browser und auf besonderen Servern, den Proxyservern. Im Browser: Den Cache im Browser können Sie sich ansehen und Sie können ihn auch ein- und ausschalten.

Mit about:cache in der Adresszeile zeigt Firefox Informationen über die gecachten Dokumente an.
Mit about:cache in der Adresszeile zeigt Firefox Informationen über die gecachten Dokumente an.
© Internet Magazin

Im Firefox geht das folgendermaßen: Wenn Sie about:cache in der Adresszeile eingeben, erhalten Sie einen Überblick über die im Browsercache gespeicherten Dateien. Falls der Cache deaktiviert sein sollte, so lässt er sich aktivieren, indem Sie in der Adresszeile about:config schreiben.Suchen Sie dann nach der Direktive browser.cache.disk.enable. Diese muss den Wert true haben. Außerdem lässt sich der Cache löschen über das Menü Extras/Einstellungen/Erweitert/Netzwerk. Beim Offline-Speicher klicken Sie jetzt löschen an.Auf Proxyservern: Der zweite Cache ist der Speicher auf Proxyservern. Dies sind zwischengeschaltete Server, die üblicherweise bei Internetprovidern zum Einsatz kommen und dafür sorgen, dass häufig benötigte Ressourcen zwischengespeichert und schneller ausgeliefert werden.

Formvollendete Kommunikation

Wie und ob gecacht wird, steuern Sie über HTTP-Header. Die Kommunikation per HTTP zwischen Browser und Server besteht aus einem head- und einem body- Teil. Eine Anfrage des Clients (Browsers) kann beispielsweise so aussehen:

GET / HTTP/1.1
Host: www.example.com

Der Browser fordert (get) eine Internetseite an und gibt gleichzeitig das verstandene Protokoll an. Zusätzlich gibt uns der Browser weitere Informationen, etwa, mit welchen Dokumenten er umgehen kann, die uns hier aber nicht weiter interessieren sollen.Dann kommt die Antwort des Servers. Am Anfang stehen das verwendete Protokoll und eine Statusmeldung:

HTTP/1.1 200 OK

Es folgen Informationen wie verwendeter Server, aktuelles Datum, MIME-Typ und Zeichensatz, die hier ausgelassen sind. Die folgenden vier Angaben hingegen sind für das Caching relevant:

Last-Modified: Tue, 16 Aug 2011
15:39:27 GMT
ETag: "7f01-4aaa12f4ee9c0;89
-3f26bd17a2f00"
Cache-Control: max-age=600
Expires: Wed, 17 Aug 2011 08:30:45
GMT

Die Headers der HTTP-Kommunikation mit Live HTTP Headers.
Die Headers der HTTP-Kommunikation mit Live HTTP Headers.
© Internet Magazin

Last-Modified und ETag sind sogenannte Validatoren, sie helfen zu ermitteln, ob ein gecachtes Dokument noch dem aktuellen Stand entspricht.Cache-Control gibt in Sekunden vor, wie lange ein Dokument gültig ist, Expires macht das ebenfalls, aber in Form eines Verfallsdatums.Nach diesem Header folgt nach einer Leerzeile der Body mit dem Inhalt der Datei. Im Beispiel wird jetzt das Dokument gecacht, und bei allen weiteren Aufrufen der Seite vor dem Ablaufzeitpunkt kann das Dokument aus dem Cache geladen werden: ohne Wartezeit, ohne Serverlast, direkt und sehr schnell ausgeliefert.

Gibt's was Neues?

Nach Ablauf des Zeitpunkts setzt der Browser ein so genanntes Conditional GET ab. Das sieht - reduziert auf die relevanten Header - folgendermaßen aus:

GET / HTTP/1.1
Host: www.example.com
If-Modified-Since: Tue, 16 Aug 2011
15:39:27 GMT
If-None-Match: "7f01-4
aaa12f4ee9c0;89-3f26bd17a2f00"

Bei If-Modified-Since steht das in der gecachten Ressource bei Last-Modified angegebene Datum. Mit If-None-Match wird die vorher beim ETag angegebene Zeichenkombination verglichen.Die Antwort des Servers kann jetzt unterschiedlich ausfallen: Wenn es keine Änderungen gibt, sendet er:

HTTP/1.1 304 Not Modified

Ansonsten sendet er den normalen 200-Statuscode und im Body der Antwort das angeforderte Dokument.