Cash, Cache, Cage: ja was denn nun?

„Über Geld spricht man nicht“ lautet ein altes, besonders im deutschen Raum verbreitetes Sprichwort. Auch wenn die Aussprache des englischen Wortes „Cache“ (Zwischenspeicher) der Aussprache des Wortes für Bargeld („Cash“) gleicht, wird im Web-Bereich dennoch oft über den Cache (Zwischenspeicher) gesprochen. Und das hat seine Gründe, so trägt er doch dazu bei, dass Web-Inhalte möglichst schnell und effizient an die Frau oder den Mann und das entsprechende Endgerät ausgeliefert werden. In diesem destination.wiki-Beitrag geht es darum, ein Grundverständnis für diese im Web so wichtige Technik zu entwickeln und am Ende zu verstehen, weshalb diese Technik aus unserer heutigen Zeit nicht wegzudenken ist. 

Ich sehe die Webseite vor lauter Caches nicht mehr!

Um eines vorwegzunehmen: Sie benutzen bei Ihren täglichen Aktivitäten im Internet ständig irgendeine Art von Cache. Sowohl Ihr Computer, als auch Ihre Webseiten verwenden das Prinzip eines Zwischenspeichers.

Der Browsercache*, also der Zwischenspeicher Ihrer beim Internetsurfen heruntergeladenen Dateien auf Ihrem Computer, ist hier wohl der geläufigste. Dabei ist das Prinzip eines Caches immer ähnlich:

Es werden Ressourcen* (also Daten, das können Informationen, Inhalte, HTML, Scripte oder Bilder sein) immer dort abgelegt, wo sie bei der nächsten Anfrage genau derselben Ressource möglichst schnell erreichbar sind und damit möglichst schnell zur Verfügung stehen.

Hierbei gibt es folgende Unterscheidung: Caches auf Seite der Webanwendung, z.B. einer Webseite und Caches auf der Seite des Benutzers dieser Webanwendung, also beim Client* oder Webseitenbesucher. 

Caching bei Webseitenbesuchern

Falls Sie sich nun gewundert haben, dass Sie (als Webseitenbesucher) von diesem Cache gar keine Kenntnis haben: Diese Aufgaben übernimmt in der Regel der Webbrowser komplett für Sie! Und das ganze passiert „unter der Haube“, ohne dass Sie tätig werden müssen, im Browser-Cache. Ein typisches Beispiel für den Cache eines Webseitenbesuchers ist der Bildercache. Dabei werden Bilderdateien, die von einer Webseite an den Webseitenbesucher übermittelt werden, mit einem (normalerweise nicht sichtbaren) Ablaufdatum versehen. Der Browser des Webseitenbesuchers legt diese Bilder lokal in seinem Cache (auf der Festplatte oder dem Smartphone-Speicher) ab, und erneuert die Bilddatei in der Regel erst, nachdem das Ablaufdatum erreicht ist. 

Im Falle des Webseitenbesuchers bedeutet Cache also:

  • Lieber Browser, bitte achte darauf, welches Ablaufdatum Dir die Webanwendung für Ressourcen („nicht sichtbar“) mitgibt! Die Dateien ändern sich i.d.R. nicht vor diesem Ablaufdatum, deswegen:
  • lege entsprechend diese Ablaufdatums die Dateien lokal auf dem Computer des Benutzers ab
  • sofern genau diese Ressource vom Benutzer noch einmal angefragt wird, lade sie nicht vom weit entfernten Webserver (das kostet nämlich Zeit!), sondern nimm’ einfach die Ressource, die Du vorher auf dem lokalen Computer abgelegt hast

Dadurch wird also letztendlich erreicht, dass bspw. große Bilddateien nur einmalig an den Webseitenbesucher übertragen werden und so wird (unter Umständen “teure”) Bandbreite gespart und ein Geschwindigkeitsvorteil bei einem erneuten Aufruf derselben Ressource (in dem Fall der großen Bilddatei) erreicht. 

Caching in einer Webanwendung

Eine Webanwendung, also die Technologie, die dafür sorgt, dass Webseiten ausgeliefert werden, arbeitet mit einem ähnlichen Prinzip. Das, was bei einem Webseitenbesucher der Festplattenspeicher ist, kann in dem Fall ein Datenbankserver oder auch ein Festplattenspeicher sein. Ziel ist auch hier immer der Performance-Gewinn.

Im Falle einer Webanwendung bedeutet Cache also unter anderem:

  • mache möglichst wenige Anfragen an die Datenbank, denn das kostet Zeit! Hole stattdessen die Ressource aus dem Cache, z.B. von einem Speichermedium, das geht schneller!
  • sammle an möglichst wenigen Stellen Ressourcen zusammen, denn genau diese Informationen hast Du eventuell vorher schon einmal zusammengetragen! Dann liegen sie also im Cache! Hole sie besser daher, das spart ebenfalls Zeit!
  •  die/der Anfragende möchte keine Interaktion mit uns (also der Webanwendung)? Super, die Seite ist statisch* und ich kann sie aus dem Cache holen!

TYPO3 und destination.one sind Webanwendungen und nutzen ebenfalls Caches. Diese existieren dabei auf unterschiedlichen Ebenen. Hier seien einige exemplarisch gelistet:

TYPO3-Caches

jeweils unterschiedliche für Konfigurationsdateien, Inhaltselemente, HTML-Gerüste, ggf. auf Datenbank oder Dateisystem-Ebene

destination.one-Caches

 Caches von strukturierten Daten auf Dateisystem-Ebene

 Zugegeben: es ist nicht unbedingt transparent und einfach zu durchschauen, was man an welcher Stelle unter dem Begriff „Cache“ versteht, da es nicht “den einen Cache” gibt. 

Wichtig zu wissen ist jedoch, dass es dem Prinzip der performanten Webseite und der schnellen Datenauslieferung folgt. Am Ende sind Caches kleine Teile in einem Puzzle, die zur Performance und dazu beitragen, dass Inhalte schnell(er) beim Webseitenbesucher ankommen.

Glossar / Wichtige Begriffe: