Cache Validator

Cache Validator

Copyright © Shutterstock/Kunst Bilder

Was ist ein Cache Validator?

Ein Cache Validator wird verwendet, um zu ermitteln, ob die im Cache eines Browsers zwischengespeicherten Ressourcen beim Aufruf einer Webseite noch gültig sind und verwendet werden können, oder ob die Ressourcen erneut vom Webserver abgerufen werden müssen. Ein Cache Validator wird in HTTP-Anforderungs- und -Antwortheadern definiert. Der Cache Validator ist wichtig, da bei einem Abruf der Dateien aus dem lokalen Cache die Ladezeiten einer Webseite erheblich verringert werden.

Die meisten Ressourcen einer HTML-Seite ändern sich nicht von Tag zu Tag. CSS– und Javascript-Dateien oder Bilder werden meist nur selten aktualisiert. Das bedeutet, dass ein Client – beispielsweise ein Browser – diese Dateien nicht bei jedem Aufruf der Webseite neu vom Server herunterladen muss, sondern sie in seinem Cache zwischenspeichern und erneut verwendet kann.

Die Validierung des Caches mit einem Cache Validator wird verwendet, um zu kommunizieren, wenn sich eine Ressource geändert hat. Ob ein Browser verschiedene Ressourcen zwischenspeichert und wie lange er diese speichert, hängt vom Browser und seinen benutzerdefinierten Einstellungen ab. Wenn ein Benutzer seinen Browser so eingestellt hat, dass er nichts im Cache speichert, hat ein Cache Validator keine Auswirkungen. Das Browser Caching wird jedoch nur selten durch die Benutzer deaktiviert, sodass es möglich ist, dem Browser vorzugeben, was zu cachen ist und wie lange die zwischengespeicherten Dateien verwendet werden sollen.

Arten von Headern

Es gibt vier verschiedene Arten von Headern, die auf verschiedene Arten als Cache Validator verwendet werden können. Die ersten beiden Header sind last-modified und ETag. Diese Header helfen dem Browser festzustellen, ob sich die Datei seit der letzten Anforderung geändert hat. Die beiden anderen Header sind Cache-Control und Expires. Diese bestimmen, wie lange eine Datei im Cache gehalten werden soll, bevor eine neue Kopie vom Server abgerufen wird.

last-modified

Der last-modified Header wird in der Regel automatisch vom Server gesendet und muss normalerweise nicht manuell hinzugefügt werden. Es wird gesendet, um festzustellen, ob die Datei im Cache des Browsers seit der letzten Anforderung geändert wurde. Ein Beispiel:

    Last-Modified: Mon, 04 Jun 2018 07:28:00 GMT

ETag Header

Wenn ETags aktiviert sind, generiert und liefert der Server ein Token, normalerweise einen Hash oder einen anderen Typ von Fingerabdruck. Der Browser speichert das Token und sendet es als Cache Validator bei der nächsten Anfrage für dieselbe Ressource an den Server. Wenn das Token identisch ist, hat sich die Ressource nicht geändert und muss nicht erneut heruntergeladen werden.

Tags sind eindeutige Kennungen, die vom Server generiert werden. Da der Server steuert, wie das ETag generiert wird, können Caches sicher sein, dass – wenn das ETag übereinstimmt, sobald sie eine If-None-Match-Anforderung stellen – die Ressource wirklich identisch ist. Wenn die Token unterschiedlich sind, wird die neue Version der Ressource über das Netzwerk bereitgestellt. Der ETag-Antwortheader ist ein sogenannter opaque-to-the-useragent-Wert und gilt als ein starker Cache Validator.

Beispiel eines ETag Headers:

    ETag: “686897696a7c876b7e”

Auf Apache-Servern bestehen ETags aus drei Komponenten: Inode, MTime und Size. ETags können entweder in der .htacess-Datei oder in der Apache-Konfigurationsdatei aktiviert werden.

Cache-Control Header

Cache-Control ist ein Header, der aus verschiedenen Direktiven besteht, mit denen die Dauer der Speicherung im Cache definiert werden kann. Eine der gebräuchlichsten Direktiven ist max-age, das den Zeitraum definiert, für den eine Datei zwischengespeichert werden muss. Die Angabe von max-age erfolgt in Sekunden. Die maximale Speicherzeit beträgt ein Jahr, also 31536000 Sekunden.

Um den Cache-Control Header in Apache zu konfigurieren, kann beispielsweise der folgende Code in die .htaccess-Datei eingetragen werden.

< filesMatch “. (ico | pdf | flv | jpg | jpeg | png | gif | js | css | swf) $”>

Header Cache-Control “max-age = 84600, public”

< / filesMatch>

 

Cache-Control-Header können auch direkt in den PHP-Code einer Webseite eingefügt werden. Im folgenden Beispiel wird die Verwendung des PHP-Headers zum Einschließen von Cache-Control für ein maximales Alter von 1 Tag festgelegt:

 

< ? php Header (‘Cache-Control: max-age = 84600’); ?>

Expires-Header

Der Expires-Header wird heute kaum noch als Cache Validator verwendet. Alle modernen Browser unterstützen Cache-Control. Im Expires-Header wird ein Gültigkeitszeitraum für den Cacheinhalt angegeben. Beispielsweise ein Tag oder ein Jahr. Um den Expires-Header in Apache hinzuzufügen, werden die Angaben in die .htaccess-Datei eingetragen. Es kann ein für alle Dateien gültiger oder ein für jeden Dateityp separater Zeitraum wie im folgenden Beispiel angegeben werden:

< IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif “access 1 year”
ExpiresByType image/jpg “access 1 month”

ExpiresByType text/css “access 1 year”
ExpiresByType application/javascript “access 1 month”

ExpiresByType image/x-icon “access 1 year”
< /IfModule>

Nutzen des Cache Validator für die SEO

Das Abrufen von zuvor angeforderten Ressourcen – direkt aus dem Cache des Browsers – ist immer effizienter als das Erstellen einer Anforderung an den Server, die zusätzliche Roundtrips erstellt. Die Angabe eines Cache Validator wie einen Last-Modified- oder Etag-Header, hilft sicherzustellen, dass Browser das Caching so effizient wie möglich nutzen. Dadurch kann die Ladezeit einer Webseite erheblich verkürzt und die Benutzererfahrung und infolgedessen das Ranking einer Webseite verbessert werden.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte