Website-Caching ohne veraltete Inhalte

Geschwindigkeit braucht nachvollziehbare Regeln

in Webentwicklung

Eine Preisänderung ist im Content-Management-System veröffentlicht, im Backend stimmt der neue Betrag und auf dem Rechner des Redakteurs sieht alles korrekt aus. Wenige Minuten später meldet der Vertrieb, dass Kunden weiterhin den alten Preis sehen. Auf dem Smartphone erscheint schon die neue Version, im Büro nicht. Nach mehreren Reloads weiß niemand mehr, welcher Stand tatsächlich ausgeliefert wird.

Solche Situationen sind kein Beweis dafür, dass Caching grundsätzlich unzuverlässig wäre. Meist fehlt ein gemeinsames Modell dafür, welche Kopie einer Antwort an welcher Stelle liegt und wann sie ersetzt werden soll. Browser, Unternehmens-Proxy, CDN, Webserver und Anwendung können dieselbe Anfrage jeweils zwischenspeichern. Jede Ebene folgt eigenen Regeln.

In Projekten wird Caching oft erst dann sichtbar, wenn etwas veraltet ist. Solange Seiten schnell laden, gilt die Technik als unscheinbare Optimierung. Beim ersten Fehler werden alle Caches geleert oder vollständig abgeschaltet. Damit verschwindet das akute Problem, aber auch der Geschwindigkeitsvorteil.

Wir planen Website-Caching deshalb nicht als einzelnen Schalter. Für jede Art von Inhalt klären wir, wer sie zwischenspeichern darf, wie lange eine Antwort frisch bleibt, wodurch Varianten entstehen und wie eine Änderung alte Kopien verdrängt. Aus diesen Entscheidungen entsteht ein Betrieb, den Entwicklung und Redaktion nachvollziehen können.

Eine Anfrage kann mehrere Speicherstellen durchlaufen

Der Browser ist nur die letzte Cache-Ebene vor dem Nutzer. Davor kann ein Content Delivery Network eine Kopie am Netzwerkrand halten. Ein Reverse Proxy speichert gerenderte HTML-Antworten, während die Anwendung Fragmente oder berechnete Daten wiederverwendet. Dahinter liegen möglicherweise weitere Caches für Datenbankabfragen oder externe Schnittstellen.

Diese Ebenen verfolgen unterschiedliche Ziele. Der Browser vermeidet erneute Übertragungen für denselben Besucher. Ein CDN bedient viele Besucher aus einem geografisch nahen Standort. Der Anwendungscache spart Berechnungen, die sonst bei jeder Anfrage erneut ausgeführt würden.

Ein veraltetes Ergebnis lässt sich deshalb nicht mit der Anweisung „Bitte den Cache löschen“ eindeutig beheben. Zuerst ist zu klären, ob die Kopie nur in einem Browser, auf einem CDN-Knoten oder bei allen gerenderten Seiten im System liegt. Ohne diese Zuordnung wird auf Verdacht an mehreren Stellen gelöscht.

Für den Betrieb zeichnen wir den Weg einer Anfrage einmal vollständig auf. Zu jeder Ebene notieren wir Produkt oder Dienst, gespeicherte Inhalte, Laufzeit, Cache-Key und Möglichkeit zur Invalidierung. Diese kleine Übersicht spart bei Störungen erheblich mehr Zeit als eine Sammlung einzelner Befehle ohne Zusammenhang.

HTTP-Header sind die Vereinbarung mit Browsern und Proxys

HTTP bringt ein eigenes Regelwerk für Caches mit. Die Antwortheader teilen nachgelagerten Systemen mit, ob eine Antwort gespeichert und unter welchen Bedingungen wiederverwendet werden darf. Diese Angaben gehören zur fachlichen Auslieferung einer Seite und dürfen nicht auf eine globale Serverkonfiguration reduziert werden.

Cache-Control bündelt die wichtigsten Anweisungen. max-age gibt an, wie viele Sekunden eine Antwort im privaten Cache frisch bleibt. s-maxage kann für gemeinsam genutzte Caches wie Proxys oder CDNs eine andere Frist festlegen. private beschränkt die Speicherung auf private Caches, während no-store die Speicherung untersagt.

Der häufig missverstandene Wert no-cache bedeutet nicht, dass eine Antwort nie gespeichert werden darf. Er verlangt vor der Wiederverwendung eine Validierung beim Ursprung. Ist die gespeicherte Version noch aktuell, kann der Server dies ohne erneute Übertragung des vollständigen Inhalts bestätigen.

Wir setzen Header möglichst an der Stelle, die den Inhalt kennt. Die Anwendung weiß, ob eine Antwort personalisiert ist. Die Asset-Pipeline weiß, ob ein Dateiname eine Inhaltsversion enthält. Eine globale Serverregel für sämtliche URLs wird dieser Unterscheidung selten gerecht.

Eine frische Antwort darf innerhalb ihrer festgelegten Zeit ohne Rückfrage wiederverwendet werden. Nach Ablauf dieser Zeit ist sie zunächst nur veraltet, nicht automatisch unbrauchbar. Der Cache kann beim Ursprung prüfen, ob sich der Inhalt geändert hat.

Dafür dienen Validatoren wie ETag und Last-Modified. Der Browser sendet den bekannten Wert in einer bedingten Anfrage. Ist die Ressource unverändert, antwortet der Server mit 304 Not Modified. Die vorhandene Kopie bleibt nutzbar, ohne dass der gesamte Inhalt erneut übertragen wird.

Diese Unterscheidung ist für HTML-Seiten praktisch. Eine Unternehmensseite kann bei jedem Aufruf validiert werden und trotzdem Bandbreite sparen. Statische Assets mit versioniertem Dateinamen benötigen dagegen während ihrer langen Frischezeit meist gar keine Rückfrage.

Ein sehr kurzer max-age ist damit nicht die einzige Antwort auf Aktualität. Gut konfigurierte Validierung ermöglicht aktuelle Inhalte mit geringer Übertragung. Der Ursprung wird zwar kontaktiert, muss aber keine vollständige Seite ausliefern, wenn sich nichts geändert hat.

Dateinamen mit Version lösen das Asset-Problem

CSS-, JavaScript- und Bilddateien ändern sich häufig bei einem Deployment, behalten in einfachen Setups aber denselben Namen. Wird app.css lange gespeichert, kann ein Browser nach dem Release die alte Datei verwenden. Passt sie nicht mehr zum neuen HTML, entstehen Darstellungsfehler oder JavaScript-Ausfälle.

Moderne Build-Prozesse ergänzen deshalb einen Hash oder eine Version im Dateinamen, etwa app.7f31c2.css. Ändert sich der Inhalt, entsteht eine neue URL. Die alte Datei darf sehr lange im Cache bleiben, weil das neue HTML bereits auf einen anderen Namen verweist.

Für solche Ressourcen verwenden wir eine lange Laufzeit und häufig die Direktive immutable. Sie signalisiert, dass sich der Inhalt unter dieser URL während der Frischezeit nicht verändert. Das reduziert unnötige Validierungsanfragen.

Das Verfahren funktioniert nur, wenn die Referenzen zuverlässig aktualisiert werden. HTML, Manifest, Service Worker und vorgerenderte Seiten müssen dieselbe Asset-Version kennen. Ein Deployment, das neue Dateien hochlädt und altes HTML im CDN belässt, hat das Problem lediglich verschoben.

HTML braucht andere Regeln als Bilder und Skripte

HTML verweist auf Inhalte und Assets, die sich nach einer Veröffentlichung ändern können. Eine monatelange Browserlaufzeit ist hier meist unpraktisch. Selbst wenn das CDN HTML für kurze Zeit zwischenspeichert, sollte die Strategie eine zeitnahe Aktualisierung erlauben.

Bei einer redaktionell gepflegten Seite wählen wir die Frist nach dem tatsächlichen Änderungsrhythmus. Eine täglich aktualisierte Nachrichtenübersicht benötigt andere Werte als eine seit Jahren stabile Impressumsseite. Einheitliche Laufzeiten sind bequem, verschenken aber entweder Aktualität oder Performance.

Auch API-Antworten bilden eine eigene Gruppe. Öffentliche Produktdaten können gemeinsam gecacht werden. Kontostände, Warenkörbe und individuelle Berechtigungen dürfen nicht versehentlich zwischen Nutzern geteilt werden. Der Inhalt bestimmt die Regel, nicht die Dateiendung oder der technische Endpunkt.

Wir erstellen dafür wenige verständliche Cache-Klassen: versionierte Assets, öffentliche HTML-Seiten, kurzlebige Listen, öffentliche APIs und personalisierte Antworten. Jede Klasse erhält Standardwerte und einen bekannten Invalidierungsweg. Sonderfälle bleiben möglich, müssen aber begründet werden.

Der Cache-Key entscheidet, welche Anfragen dieselbe Antwort teilen

Ein Cache speichert eine Antwort nicht einfach unter dem Seitennamen. Er bildet einen Schlüssel aus Merkmalen der Anfrage. Mindestens spielen Methode und Ziel-URI eine Rolle. Je nach System kommen Query-Parameter, Header, Cookies, Hostname, Sprache oder Gerätetyp hinzu.

Ist der Schlüssel zu grob, erhalten unterschiedliche Anfragen dieselbe Antwort. Das kann bei personalisierten Seiten zu einem ernsten Datenproblem werden. Ist er zu fein, entstehen unzählige nahezu identische Kopien. Die Trefferquote sinkt und der Ursprung muss häufiger arbeiten.

Tracking-Parameter zeigen dieses Spannungsfeld. Die URLs /angebot?utm_source=newsletter und /angebot?utm_source=linkedin liefern oft denselben Inhalt. Werden sämtliche Parameter Teil des Schlüssels, entstehen getrennte Cache-Einträge ohne fachlichen Grund. Ignoriert das System pauschal alle Parameter, kann es dagegen echte Filter oder Sprachvarianten vermischen.

Wir führen deshalb eine Positiv- oder Negativliste nach fachlicher Bedeutung. Parameter, die den Inhalt verändern, bleiben im Schlüssel. Reine Kampagnenkennzeichen können entfernt werden. Diese Entscheidung wird dokumentiert und bei neuen Funktionen überprüft.

Cookies machen öffentliche Seiten überraschend individuell

Viele Websites setzen Cookies lange vor einer Anmeldung. Consent-Management, Kampagnenmessung, A/B-Tests, Spracheinstellungen oder Merklisten hinterlassen Werte im Browser. Manche Cache-Konfiguration umgeht bei jedem Cookie die gemeinsame Speicherung. Die vermeintlich gecachte Website wird dann für einen großen Teil der Besucher dynamisch erzeugt.

Die Gegenrichtung ist riskanter: Ein CDN ignoriert Cookies, obwohl die Anwendung darüber Loginstatus oder individuelle Inhalte erkennt. Dann kann eine personalisierte Antwort unter einem öffentlichen Schlüssel landen. Die Folgen reichen von falscher Navigation bis zur Auslieferung fremder Daten.

Cookies gehören deshalb einzeln bewertet. Verändert ein Cookie die Antwort tatsächlich, muss es berücksichtigt oder die Antwort als privat behandelt werden. Hat es keinen Einfluss auf den Inhalt, sollte es nicht unnötig den Cache umgehen oder den Schlüssel vervielfachen.

Bei eingeloggten Bereichen bevorzugen wir einfache, defensiv verständliche Regeln. Öffentliche Seiten und private Anwendungen werden klar getrennt. Eine hochoptimierte gemeinsame HTML-Cache-Strategie ist ihren Vorteil nicht wert, wenn ihre Sicherheit von schwer nachvollziehbaren Cookie-Ausnahmen abhängt.

Vary beschreibt relevante Varianten, kann sie aber vermehren

Mit dem Antwortheader Vary teilt der Ursprung einem Cache mit, welche Request-Header für die Auswahl einer Antwort relevant sind. Bei Vary: Accept-Encoding werden beispielsweise komprimierte Varianten passend zur Anfrage getrennt behandelt.

Auch Sprache oder andere Inhaltsaushandlungen können über Vary abgebildet werden. Jeder zusätzliche Header vergrößert jedoch die Zahl möglicher Varianten. Vary: User-Agent kann eine kaum überschaubare Fragmentierung erzeugen, weil Browser viele unterschiedliche Kennungen senden.

Wir verwenden Vary nur für Merkmale, die die Antwort tatsächlich verändern und deren Werte kontrollierbar sind. Für grobe Geräteklassen oder Sprachversionen ist eine explizite URL manchmal einfacher zu betreiben. Eine sichtbare URL macht Varianten auch für Analyse, Support und Suchmaschinen verständlicher.

Wichtig ist die Abstimmung mit dem CDN. Manche Anbieter berechnen eigene Cache-Keys oder ignorieren bestimmte Header in individuellen Regeln. Anwendung, Proxy und CDN müssen dieselbe Vorstellung davon haben, wann zwei Antworten austauschbar sind.

Invalidierung beginnt beim Inhalt und nicht beim Löschknopf

Nach einer Änderung muss bekannt sein, welche Cache-Einträge davon abhängen. Wird ein Produkt aktualisiert, betrifft das seine Detailseite, Kategorieübersichten, Suchergebnisse und möglicherweise Teaser auf der Startseite. Nur die Detail-URL zu löschen reicht dann nicht.

Eine vollständige Leerung ist einfach, belastet aber den Ursprung. Nach dem sogenannten Purge treffen viele Anfragen zur selben Zeit auf leere Caches. Bei großen Websites kann eine harmlose Textkorrektur dadurch eine unnötige Lastspitze erzeugen.

Gezielte Invalidierung benötigt Abhängigkeiten. Das CMS oder die Anwendung kennt beim Speichern den betroffenen Datensatz und stößt passende Löschungen an. Einige Systeme arbeiten mit Tags, Surrogate Keys oder Gruppen, über die zusammengehörige Antworten gemeinsam entfernt werden.

Wir behandeln die Invalidierung als Teil des Veröffentlichungsprozesses. Eine Änderung gilt erst dann als ausgeliefert, wenn neue Inhalte gespeichert und abhängige Kopien entfernt oder versioniert wurden. Die Redaktion sollte diesen Zustand sehen können, statt nach jeder Veröffentlichung selbst mehrere Geräte zu kontrollieren.

Ein Cache von fünf Minuten begrenzt die Dauer eines Fehlers, verhindert ihn aber nicht. Bei Preisen, Verfügbarkeiten oder zeitkritischen Hinweisen können fünf Minuten bereits zu lang sein. Bei stabilen Seiten verschenkt dieselbe Frist unnötig viele Treffer.

Kurze Laufzeiten sind sinnvoll, wenn eine geringe Verzögerung fachlich akzeptiert wird und gezielte Invalidierung zu aufwendig wäre. Diese Entscheidung muss bewusst fallen. „Es wird irgendwann von allein aktuell“ ist kein verlässlicher Veröffentlichungsprozess.

Für geschäftskritische Änderungen kombinieren wir moderate Laufzeiten mit Ereignissen. Das Speichern eines Datensatzes löst die relevante Invalidierung aus; die Laufzeit bildet eine zusätzliche Begrenzung, falls dieses Ereignis einmal ausbleibt.

Umgekehrt können versionierte Dateien ein Jahr frisch bleiben, weil ihre URL bei Änderungen wechselt. Die passende Dauer ergibt sich aus der Änderungslogik der Ressource. Ein einzelner globaler TTL-Wert kann diese Unterschiede nicht abbilden.

Stale-while-revalidate kann Wartezeit verstecken

Bei manchen Seiten ist eine wenige Sekunden alte Antwort besser als eine langsame. Die Direktive stale-while-revalidate erlaubt einem Cache, eine gerade veraltete Kopie auszuliefern und im Hintergrund eine frische Version abzurufen. Der Besucher erhält schnell eine Antwort, der nächste Aufruf profitiert von der Aktualisierung.

Das Verfahren passt zu Inhalten, bei denen kurze Verzögerungen vertretbar sind: redaktionelle Übersichten, Informationsseiten oder öffentliches Datenmaterial ohne minutengenaue Zusage. Für Kontostände, einmalige Codes oder verbindliche Verfügbarkeiten wäre dieselbe Strategie unpassend.

stale-if-error kann bei einem Ausfall des Ursprungs eine ältere Antwort erlauben. Eine erreichbare, leicht veraltete Serviceseite ist für Besucher möglicherweise hilfreicher als ein Serverfehler. Auch hier muss der Inhalt die Entscheidung tragen.

Wir dokumentieren solche Zeitfenster in verständlichen Einheiten. Niemand sollte erst Sekundenwerte aus einer Konfiguration umrechnen müssen, um zu erkennen, dass bei einer Störung Inhalte bis zu 24 Stunden alt sein können.

Mehrsprachigkeit braucht eine eindeutige Variante

Mehrsprachige Websites bestimmen die Sprache über URL, Domain, Cookie oder den Header Accept-Language. Für den Cache ist das ein wesentlicher Unterschied. Werden Varianten nicht sauber getrennt, kann nach einem Treffer die falsche Sprache ausgeliefert werden.

Explizite Sprachpfade wie /de/ und /en/ ergeben gut sichtbare Schlüssel. Ein Sprachcookie kann für Präferenzen hilfreich sein, sollte aber nicht unbemerkt eine öffentliche URL in zahlreiche Varianten teilen. Automatische Erkennung eignet sich eher für eine Weiterleitung als für dauerhaft uneindeutige Inhalte.

Ähnliches gilt für Länder, Währungen und Sortimente. Eine andere Währung ist keine rein gestalterische Variante, wenn Preise oder Verfügbarkeit abweichen. Der Schlüssel muss alle Merkmale enthalten, die die fachliche Antwort bestimmen.

Bei internationalen Projekten prüfen wir deshalb Beispielanfragen aus mehreren Regionen und mit unterschiedlichen Spracheinstellungen. Nicht als allgemeines Testing-Thema, sondern als Kontrolle der konkreten Auslieferungsregeln, die sonst schwer sichtbare Mischzustände erzeugen.

Vorschau und Redaktion dürfen nicht im öffentlichen Cache landen

CMS-Vorschauen zeigen unveröffentlichte oder zukünftige Inhalte. Häufig nutzen sie dieselbe URL wie die öffentliche Seite und unterscheiden sich nur durch Login, Token oder Cookie. Wird eine Vorschauantwort gemeinsam gespeichert, kann sie später normalen Besuchern angezeigt werden.

Vorschau- und Bearbeitungsmodi erhalten deshalb eine klare Cache-Sperre oder einen strikt getrennten Schlüssel. Wir bevorzugen private oder no-store, wenn sensible Entwürfe enthalten sind. Eine Ausnahme im CDN allein reicht nicht, falls davor oder dahinter weitere Caches arbeiten.

Auch personalisierte Werkzeugleisten und eingeloggte Navigation benötigen Aufmerksamkeit. Ein Redakteur sieht nach der Anmeldung andere Elemente als ein Besucher. Die öffentliche HTML-Antwort sollte nicht durch redaktionelle Cookies unkontrolliert vervielfacht werden.

Der sauberste Aufbau trennt öffentliche Ausgabe, Vorschau und Backend technisch erkennbar. Dann lassen sich Regeln verstehen, ohne eine lange Liste spezieller Cookie-Kombinationen zu pflegen.

Service Worker führen ein eigenes Gedächtnis

Progressive Web Apps und manche moderne Frontends verwenden einen Service Worker. Dieses Skript sitzt im Browser zwischen Anwendung und Netzwerk und kann Antworten in der Cache API speichern. Es folgt dabei der programmierten Strategie, nicht automatisch den üblichen Regeln eines CDN oder Proxy-Caches.

Dadurch entsteht eine zusätzliche Fehlerquelle. Das CDN liefert bereits das neue JavaScript, doch der aktive Service Worker beantwortet die Anfrage weiterhin aus einem alten, selbst verwalteten Cache. Ein normaler Reload ändert daran je nach Implementierung wenig. Auch ein Purge beim CDN erreicht die lokale Kopie nicht.

Service Worker benötigen deshalb eine eigene Versions- und Aktualisierungsstrategie. Cache-Namen werden mit der Anwendungsversion verknüpft, nicht mehr benötigte Bestände beim Aktivieren entfernt und neue Dateien vollständig geladen, bevor die Anwendung auf sie umschaltet. Ein halb aktualisierter Offline-Bestand führt sonst zu schwer reproduzierbaren Mischständen.

Die Benutzerführung gehört ebenfalls dazu. Ein neuer Service Worker kann zunächst warten, solange alte Tabs geöffnet sind. Bei wichtigen Aktualisierungen zeigt die Anwendung einen verständlichen Hinweis und bietet einen kontrollierten Neustart an. Ein erzwungenes Umschalten mitten in einem Formular wäre technisch aktuell, aus Nutzersicht aber schlecht gelöst.

Wir dokumentieren Service-Worker-Caches getrennt von Browser- und CDN-Caches. Support erhält einen klaren Weg, die aktive Version zu erkennen. Entwicklung und Qualitätssicherung prüfen Updates mit bereits installierter alter Version, denn ein frisches Browserprofil bildet gerade diesen Übergang nicht ab.

Deployments benötigen eine feste Reihenfolge

Bei einem Release verändern sich häufig HTML, Assets und Anwendungscode zusammen. Werden alte Dateien zu früh entfernt, verweist noch gecachtes HTML auf Ressourcen, die nicht mehr existieren. Wird zuerst neuer Code aktiviert, kann er mit alten Fragmenten arbeiten, deren Struktur nicht mehr passt.

Wir laden versionierte Assets vor der Umschaltung hoch und behalten frühere Versionen für eine Übergangszeit. Danach folgt die Anwendung. HTML- und Fragment-Caches werden erst invalidiert, wenn die benötigten Dateien erreichbar sind.

Bei Änderungen an Datenstrukturen muss der Anwendungscache ebenfalls berücksichtigt werden. Ein gespeichertes Objekt aus der alten Version kann nach dem Deployment Felder vermissen oder ein anderes Format besitzen. Eine Versionsnummer im Key trennt inkompatible Einträge ohne riskante Annahmen.

Rollback und Cache gehören zusammen. Wird Code zurückgesetzt, müssen dazu passende Assets und Cache-Versionen noch vorhanden sein. Ein Rollback, das nur das Repository betrifft, stellt den vorherigen Auslieferungszustand nicht vollständig wieder her.

Nach einer größeren Invalidierung kann ein sogenannter Cache Stampede entstehen. Viele Besucher fordern dieselbe aufwendige Seite an, während noch keine neue Kopie vorhanden ist. Ohne Koordination berechnet der Ursprung die identische Antwort mehrfach. Request Coalescing, kurze Sperren oder eine gezielte Vorwärmung sorgen dafür, dass eine Anfrage den neuen Eintrag erzeugt und weitere Anfragen auf dieses Ergebnis warten oder vorübergehend eine erlaubte ältere Kopie erhalten.

Vorwärmung ist vor allem für bekannte stark besuchte Einstiegsseiten sinnvoll. Nach einem Release ruft ein kontrollierter Prozess diese URLs auf, bevor der normale Verkehr vollständig umgeschaltet wird. Die Liste bleibt klein und fachlich begründet. Tausende Seiten pauschal anzufordern verschiebt die Last nur in ein internes Skript und füllt den Cache mit Inhalten, die möglicherweise niemand besucht. Bei mehreren CDN-Regionen berücksichtigen wir zudem, dass ein Aufruf nicht automatisch jeden Standort erwärmt. Die Wirkung der Maßnahme wird deshalb an realen Cache-Statuswerten kontrolliert und nicht allein aus einem erfolgreichen Skriptlauf abgeleitet.

Beobachtbarkeit ersetzt das Raten im Störungsfall

Wenn ein Nutzer alte Inhalte meldet, benötigen wir mehr als einen Screenshot. Antwortheader wie Age, anbieterspezifische Cache-Status-Felder und eine Versionskennung helfen zu erkennen, welche Ebene geantwortet hat.

Wir ergänzen bei komplexen Setups eine unkritische Release- oder Inhaltsversion in den Headern. Support und Entwicklung können damit vergleichen, ob zwei Besucher dieselbe Ausgabe erhalten. Personenbezogene oder interne Daten gehören dort selbstverständlich nicht hinein.

Wichtige Kennzahlen sind Trefferquote, Antwortzeit bei Treffern und Fehlschlägen, Zahl der Invalidierungen sowie Last auf dem Ursprung. Eine hohe Cache-Hit-Rate ist kein Selbstzweck. Sie ist wertlos, wenn falsche Varianten geteilt oder Änderungen zu spät sichtbar werden.

Protokolle sollten Purges mit Auslöser, betroffenen Schlüsseln und Ergebnis festhalten. Dann lässt sich nach einer fehlgeschlagenen Veröffentlichung klären, ob das CMS kein Ereignis gesendet, das CDN es abgelehnt oder die Abhängigkeit eine URL übersehen hat.

Ein brauchbares Cache-Konzept passt auf wenige Seiten

Für ein typisches Unternehmensprojekt brauchen wir keine Abhandlung über jede HTTP-Direktive. Das Betriebskonzept beschreibt die Cache-Ebenen, Inhaltsklassen, Schlüsselmerkmale, Laufzeiten, Invalidierungsereignisse und Zuständigkeiten. Beispiele für reale URLs machen die Regeln verständlich.

Redaktion, Entwicklung und Betrieb lesen darin unterschiedliche Dinge. Die Redaktion muss wissen, wann eine Veröffentlichung sichtbar wird. Die Entwicklung benötigt Regeln für neue Seitentypen. Der Betrieb braucht Diagnose- und Löschwege, die nicht den gesamten Cache unnötig leeren.

Neue Funktionen werden gegen dieses Modell eingeordnet. Eine Merkliste führt einen Cookie ein, eine Sprachversion erweitert die URLs oder ein neuer CDN-Dienst berechnet Schlüssel anders. Solche Änderungen sind Teil der fachlichen Auslieferung und gehören in die technische Konzeption.

Die pragmatische Leitfrage lautet: Welche Anfragen dürfen nachweislich dieselbe Antwort erhalten, und wodurch wird diese Antwort ungültig? Wer beides für jeden Inhaltstyp beantworten kann, bekommt eine schnelle Website, ohne Aktualität, Verfügbarkeit und Datenschutz im täglichen Betrieb unnötig dem Zufall zu überlassen.

Lassen Sie die Cache-Strategie Ihrer Website technisch und redaktionell prüfen.

Cache-Strategie prüfen lassen

+49 (201) 27 10 61 97

Diesen Artikel teilen: