Direkt zum Inhalt

Meinels Web-Tutorial: Der Cache, das Kurzzeitgedächtnis des Internets

Das Internet transportiert heute Daten in gigantischem Ausmaß. Ein Glück, dass man an strategischen Stellen Depots anlegen kann: Caches verhindern überflüssige Datenbewegungen.
Wenn sich das Netz an bereits gesendete Daten »erinnert«Laden...

Heute nutzen nicht nur Milliarden von Menschen das World Wide Web, sondern auch unzählige autonom agierende Anwendungen und IT-Systeme, so genannte Webservices. Es ist klar, dass dabei gigantische Mengen an Daten hin und her geschoben werden müssen. Während 2007 noch zirka 54 Exabyte an Daten über das globale Internet flossen, waren es 2017 schon 1,1 Zettabyte. Oder in etwas vertrauteren Einheiten ausgedrückt: Aus 54 Milliarden Gigabyte wurden 1100 Milliarden Gigabyte. Für 2022 schätzt die Internationale Energieagentur (IEA) den Umfang des Datenverkehrs gar auf 4,2 Zettabyte (4200 Milliarden Gigabyte).

Solche Datenströme müssen gehandhabt werden. Das kann einerseits dadurch geschehen, dass man bessere Internetleitungen baut und zusätzliche, am besten größere Datenzentren einrichtet, also insgesamt mehr Ressourcen aufwendet. Andererseits ist es auch schon allein aus Gründen der Energiesparsamkeit notwendig, darüber nachzudenken, ob man nicht mit Hilfe von Software verhindern kann, dass Daten unnötig oft bewegt werden.

In der Informatik hat sich dabei die gut bekannte Technik des »Caching« bewährt. Sie ist eine Art Kurzzeitgedächtnis des Webs. Denn sie erlaubt es, die Datenautobahnen zu entlasten, indem sie Antwortdaten, die eigentlich von Anfrage zu Anfrage unverändert bleiben, aus dem Verkehrskreislauf nimmt.

Die meisten Webseiten und Webdokumente sind heute noch relativ statisch. Man denke an die Homepages der Unternehmen und Organisationen: Die Angaben zu Produkt, Öffnungszeiten und Personal ändern sich kaum oder zumindest ganz langsam. Deshalb ist es sinnvoll, über Zwischenspeicher nachzudenken, die nahe beim Benutzer liegen und für wiederholte Besuche der gleichen Website innerhalb kurzer Zeit die Daten speichern. Man spart so einen erneuten Datentransfer über das Netz.

Welche clevere Technik steckt hinter dem Begriff »TCP/IP«? Wie bekommt man Videos ins Netz? Und warum erscheint uns das Internet aus einem Guss, obwohl es aus Milliarden unterschiedlicher Rechner besteht? Das und mehr beleuchtet Informatikprofessor Christoph Meinel alle drei Wochen bei seinem Blick hinter die Kulissen des World Wide Web .
Alle Folgen gibt es hier: »»Meinels Web-Tutorial«

Derartige Zwischenspeicher heißen Caches und werden innerhalb der Client-Server-Interaktionen im Internet wirksam. Sie sind zwischen dem Nutzer (Client oder Webbrowser) und der Informationsquelle (Webserver) angesiedelt und speichern für eine begrenzte Zeit alle vom Nutzer beim Server angeforderten Informationen. Wenn eine Informationsressource erneut angefordert wird, kann diese vollständig aus dem nahe liegenden Cache-Zwischenspeicher abgerufen werden. Im Ergebnis lässt sich so die Serverlast und das Kommunikationsaufkommen im Internet drastisch reduzieren.

Caches können zwischen Client und Server an ganz verschiedenen Stellen platziert werden:

Clientseitiger Cache: Der Zwischenspeicher liegt direkt im Browser des Nutzers und hält sämtliche Antworten auf dessen Anfragen vor. Wenn ein Nutzer im Web auf einer Website und deren Unterseiten surft und wiederholt auf Ressourcen dieser Website zugreift, dann müssen diese nicht immer wieder neu über das Internet übertragen werden, sondern können direkt aus dem Cache im Browser dem Nutzer angezeigt werden.

Eigenständiger Cache: Ist man in einem größeren Netzverbund unterwegs, wie zum Beispiel in einem Unternehmensintranet, dann ist es sinnvoll, einen Cache beim Gateway des Intranets, also an der Schnittstelle des lokalen Netzes zum Internet, zu platzieren. So können Anfragen von verschiedenen Nutzern des Intranets an die Webserver, deren Ressourcen bereits einmal angefragt und übertragenen wurden, direkt aus einem solchen lokalen Cache beantwortet werden. Das Intranet muss dazu nicht verlassen werden.

Serverseitiger Cache: Viele Server stellen die Antwort auf eine Anfrage dynamisch mit Hilfe von Webanwendungen zusammen. In einem beim Server platzierten Cache können diese Antworten für gleich lautende spätere Anfragen zwischengespeichert werden. Sie müssen dann nicht mehr aufwändig erzeugt werden, sondern können direkt aus dem Cache ausgeliefert werden.

Tatsächlich sind im Internet komplexe Cache-Architekturen installiert. Ziel ist dabei immer, Übertragungskapazitäten im Internet so effizient als möglich zu nutzen, dem Nutzer angefragte Informationen mit geringerer Wartezeit auszuliefern und die Berechnungsaufwände und Energiebedarfe auf Seiten der Webserver zu minimieren.

Caching macht aber nur Sinn, wenn die im Cache gespeicherten Ressourcen auch tatsächlich aktuell sind. Niemand möchte inzwischen längst überholte Inhalte ausgespielt bekommen. Wenn also eine Information über das Netz angefragt wird und irgendwo zwischen Client und Server Caches aktiv sind, müssen diese entscheiden, ob sie über die angefragte Information verfügen und, wenn ja, ob diese noch aktuell ist. Nur dann darf die Ressource dem Nutzer aus dem Cache verfügbar gemacht werden. Wenn eins von beiden nicht zutrifft, muss die Anfrage über das Internet an den Server weitergeleitet werden.

Um zu verhindern, dass veraltete Informationen ausgeliefert werden – man spricht hier von »Cache-Konsistenz« –, gibt es verschiedene Ansätze. So werden Webdokumente mit einer Gültigkeitsdauer (»max-age: t«) versehen, die typischerweise in Sekunden angegeben wird. Wird ein Dokument in einem Cache zwischengespeichert, dann wird es mit einem Zeitstempel versehen, anhand dessen später entschieden werden kann, ob das Dokument noch gültig ist und ausgeliefert werden kann oder ob sein Verfallsdatum überschritten ist. In diesem Fall müsste es erneut beim Webserver angefordert werden. Anbieter hochdynamischer Informationsinhalte oder besonders schützenswerter Daten können mit den Befehlen »no-cache« auch veranlassen, dass der Cache die Gültigkeit der Ressource stets beim Server validiert. Mit »no-store« lässt sich die Zwischenspeicherung im Cache ganz verbieten.

Wenn ein Verfallsdatum überschritten wird, könnte man die Cache-Information einfach löschen und bei erneuter Anfrage die vollständige Information neu laden. Klüger ist es aber, die Cache-Information beizubehalten und den Cache-Befehl von »max-age: t« auf »no-cache« zu stellen. Dann kann ein als »Content-Revalidierung« bezeichneter Algorithmus zum Einsatz kommen, der, anstatt die Ressource vom Ursprungsserver vollständig neu zu laden, diesen zunächst nur fragt, ob sich die Ressource seit dem im Cache vermerkten Zeitpunkt verändert hat. Ist das nicht der Fall, kann die Information aus dem Cache weiterverwendet werden. Nur wenn die Information als veraltet zurückgemeldet wird, muss sie komplett neu übertragen werden.

Die beschriebenen Cache-Mechanismen sind von zentraler Bedeutung für die Effizienz der Kommunikation im World Wide Web. Sie stellen sicher, dass die Nutzer schnell an die gewünschten Informationen und Dienste kommen und das Internet den dazu notwendigen Datenverkehr schultern kann.

Lesermeinung

Beitrag schreiben

Wir freuen uns über Ihre Beiträge zu unseren Artikeln und wünschen Ihnen viel Spaß beim Gedankenaustausch auf unseren Seiten! Bitte beachten Sie dabei unsere Kommentarrichtlinien.

Tragen Sie bitte nur Relevantes zum Thema des jeweiligen Artikels vor, und wahren Sie einen respektvollen Umgangston. Die Redaktion behält sich vor, Leserzuschriften nicht zu veröffentlichen und Ihre Kommentare redaktionell zu bearbeiten. Die Leserzuschriften können daher leider nicht immer sofort veröffentlicht werden. Bitte geben Sie einen Namen an und Ihren Zuschriften stets eine aussagekräftige Überschrift, damit bei Onlinediskussionen andere Teilnehmer sich leichter auf Ihre Beiträge beziehen können. Ausgewählte Lesermeinungen können ohne separate Rücksprache auch in unseren gedruckten und digitalen Magazinen veröffentlicht werden. Vielen Dank!

Partnervideos