Glossar · Plattform · Stand
Cache
Ein Cache hält Daten für eine spätere Wiederverwendung bereit. Ein HTTP-Cache speichert geeignete Antworten, damit eine weitere Anfrage nicht jedes Mal vollständig vom Ursprungsserver beantwortet werden muss.
Interaktives Modell
Einmal holen. Wiederverwenden.
Zwei Abrufe desselben Bildes: zuerst vom Ursprung, danach aus einer noch frischen, passenden Kopie.
GET /logo.svg
Browser
Cache
Ursprung
Ein allgemeines HTTP-Cache-Modell mit einer öffentlich speicherbaren Antwort. Cache-Schlüssel, Vary und Frische müssen passen; private oder nicht speicherbare Inhalte sind ein anderer Fall. Die Szene ist keine Live-Anzeige eines obhut-Dienstes.
Eine Antwort mehrfach verwenden
Findet ein Cache eine passende, verwendbare Antwort, spricht man von einem Treffer oder Cache Hit. Fehlt sie, liegt ein Cache Miss vor und die Anfrage muss weiter zum Ursprung. Browser führen private Caches; ein CDN kann Antworten für viele Nutzer gemeinsam halten.
Der Schlüssel für einen Treffer muss die richtige Variante unterscheiden.
Beispielsweise darf eine Antwort in deutscher Sprache nicht unbeabsichtigt für
eine anderssprachige Anfrage verwendet werden. HTTP kann dafür über
Vary relevante Anfragefelder benennen.
Ein Beispiel mit Bild und Warenkorb
Das Produktbild eines Shops ist für viele Besucher identisch. Ein geeigneter Cache kann den Ursprung von wiederholten Abrufen entlasten. Der persönliche Warenkorb eines angemeldeten Besuchers ist dagegen nicht für andere Besucher bestimmt.
Schon dieses Beispiel zeigt: Eine hohe Trefferquote allein ist kein Qualitätsziel. Zuerst muss feststehen, welche Antworten gemeinsam nutzbar sind. Erst danach lohnt es sich, ihre Speicherung und Frische zu optimieren.
Speichern, prüfen oder neu laden
HTTP-Antworten steuern ihre Wiederverwendung unter anderem mit
Cache-Control. max-age beschreibt die Frischezeit;
private schließt gemeinsame Caches aus.
no-cache verlangt vor einer erneuten Nutzung eine erfolgreiche
Prüfung, während no-store die Speicherung untersagt.
Ist eine gespeicherte Antwort unverändert, kann eine Prüfung am Ursprung eine vollständige erneute Übertragung ersparen. Ändert sich Inhalt vor Ablauf seiner Frischezeit, kommt außerdem die Cache-Invalidierung ins Spiel.
Bei obhut
Ein Cache ist eine der Schichten, die wir für den europäischen Edge bauen. Er ergänzt den TLS-Proxy um die Wiederverwendung geeigneter Inhalte. Die Anwendung muss dabei weiterhin bestimmen können, welche Antworten öffentlich und welche persönlich sind.
Häufige Fragen
Ist ein Cache ein Backup?
Nein. Seine Einträge dürfen verschwinden oder verdrängt werden. Die maßgeblichen Daten müssen weiterhin an ihrem vorgesehenen Ort bestehen.
Bedeutet no-cache, dass nichts gespeichert wird?
Nein. Dafür ist no-store vorgesehen. no-cache betrifft die erneute Verwendung ohne vorherige Prüfung.