Fähigkeit

Response-Caching

Häufige Antworten ohne Backend-Round-Trip ausliefern — Latenz reduzieren und Kapazität freigeben.

Die schnellste Antwort, die eine Anwendung liefern kann, ist eine, die das Backend nie erreicht. TR7 Response-Caching speichert statische Inhalte, selten ändernde API-Antworten und deterministische dynamische Ausgaben auf der ADC-Schicht und gibt Benutzern schneller Antworten. Benannte Cache-Profile zentralisieren Größe, TTL, ETag-Verhalten und Debug-Header-Konfiguration. Bedingte Cache-Regeln binden Cache-Entscheidungen an Pfad, Methode, Header, Cookie oder FX-Bedingungen — innerhalb desselben Service können Produktkataloge gecacht werden, während Warenkörbe, Zahlungsflüsse und benutzerspezifische Endpoints explizit ausgeschlossen werden. Das dynamische Cache-Key-Modell ermöglicht separate Cache-Slots für dieselbe URL. Land, Gerätetyp, Mandanten-ID, A/B-Test-Gruppe oder ein benutzerdefinierter Header-Wert können alle zum Cache-Key hinzugefügt werden, was Inhalte schnell hält, ohne das Risiko, dem falschen Benutzer die falsche Antwort zu liefern. Das Ergebnis: TR7 macht Response-Caching von einem separaten Cache-Server-Projekt zu einer bedingten, auditierbaren Leistungsschicht, die vom selben vService-Panel aus verwaltet wird.

2048 MB
Maximale Cache-Größe pro Profil
10 s
Minimaler Cache-Timeout — Thrashing-Schutzgarantie
6
Override-Schalter: Host / Query / Request / Response / Method / Dynamic

HTTP-Caching sieht einfach aus; den Cache-Key und die Ausnahmebehandlung in der Produktion korrekt hinzubekommen, ist schwer.

HTTP-Caching ist in der Theorie unkompliziert: Wenn Cache-Control-, ETag- und TTL-Werte korrekt sind, verwenden Clients und Intermediäre dieselbe Antwort wieder. In der Produktion senden Anwendungen diese Header routinemäßig fehlend, falsch oder zu restriktiv. Das Ergebnis ist, dass cachefähiger Inhalt das Backend unnötigerweise weiterhin trifft.

Selbst bei statischen Assets erodieren kleine URL-Unterschiede die Cache-Effizienz. Dasselbe Produktbild oder dieselbe Katalogseite kann sich wegen Tracking-Parametern wie ein anderes Objekt verhalten. Host, Query-String, Client-Header oder ein falsch konfigurierter Cache-Control-Header senken unnötig die Cache-Trefferquote.

Bei dynamischen Inhalten ist das Problem größer. Derselbe Pfad kann für Mobil- und Desktop-Geräte unterschiedliche Antworten zurückgeben; Preise können nach Land variieren; derselbe Endpoint kann pro Mandant unterschiedliche Daten produzieren. Wenn der Cache-Key diesen Kontext nicht trägt, wird der falsche Inhalt zurückgegeben. Zu viele Header zum Cache-Key hinzufügen und der Cache funktioniert kaum noch.

Externe Cache- oder CDN-Lösungen sind am Internet-Edge nützlich, aber nicht immer für On-Premises-, private API- oder Sovereign-Cloud-Traffic geeignet. Caching auf der ADC-Schicht erfordert typischerweise Konfigurationsdateien, eine benutzerdefinierte Regelsprache oder ein separates Produkt.

TR7 Response-Caching bringt Cache-Profile, bedingte Regeln, dynamische Cache-Keys und Standard-Override-Optionen unter einem einzigen vService-Verwaltungsmodell zusammen.

Unser Ansatz

TR7 verwaltet das Cache-Verhalten durch vier Schichten: Profile, Bedingungen, dynamische Keys und kontrollierte Overrides.

Benannte Cache-Profile bieten Service-spezifische Kontingente

Ein Cache-Profil bündelt Name, Größe, TTL, ETag und Debug-Header-Einstellungen an einem Ort. Dasselbe Profil kann über mehrere vServices geteilt werden, während jeder Service durch seine eigenen Cache-Limits gesteuert wird.

Bedingte Cache-Regeln treffen Endpoint-spezifische Entscheidungen

Jede Cache-Regel bindet sich über die FX-Bedingungs-Engine an Pfad, Methode, Header, Cookie oder andere Variablen. Ein öffentlicher Katalog auf demselben Backend kann gecacht werden, während der Warenkorb des Benutzers ausgeschlossen ist — ohne Änderung von Anwendungscode.

Dynamische Cache-Keys verhindern falsche Inhaltsantworten

Land, Gerätetyp, Mandanten-ID, Benutzersegment oder ein benutzerdefinierter Header können zum Cache-Key hinzugefügt werden. Dieselbe URL teilt sich sauber in separate Cache-Slots pro Kontext auf, wobei Cache-Geschwindigkeit erhalten bleibt und gleichzeitig die Inhaltskorrektheit gestärkt wird.

Standard-Override-Optionen verbessern die Cache-Effizienz

Host-, Query-String-, Request-Header- und Response-Header-Prüfungen können jeweils bewusst umgangen werden. Falsch konfigurierte Backends oder Tracking-Parameter unterdrücken die Trefferquoten nicht mehr. Operatoren entscheiden explizit, welchen Standard sie wann überschreiben wollen.

Fähigkeiten

Response-Caching macht jedes Verhalten — vom Cache-Profil bis zum dynamischen Key — auf vService-Ebene konfigurierbar.

Benannte Cache-Profile zentralisieren Größen- und TTL-Konfiguration

Jedes Profil wird mit einem Namen, einer maximalen Größe und einem Timeout definiert. Das Größenlimit hält die Cache-Nutzung pro Service unter Kontrolle. Timeout ist in Sekunden, Minuten oder Stunden konfigurierbar. Die Anwendung desselben Profils auf mehrere vServices reduziert operativen Wiederholungsaufwand.

Cache-Treffer und -Fehler sind über einen Response-Header sichtbar

TR7 kann einen Debug-Header zu Antworten hinzufügen, der es einem Entwickler oder Operator ermöglicht, im Browser-Netzwerkbereich zu sehen, ob eine Antwort aus dem Cache oder vom Backend stammt. Kein zusätzliches Log-Tool ist für eine schnelle Überprüfung nötig — es beschleunigt Inbetriebnahme und Abstimmung.

Bedingte Cache-Regelliste bietet Endpoint-genaue Kontrolle

Mehrere Regeln können innerhalb eines einzelnen Cache-Profils definiert werden. Jede Regel wird durch Pfad, Methode, Header, Cookie oder FX-Bedingungen ausgelöst. `/assets/*` kann lange gecacht werden, während `/api/cart` ausgeschlossen ist. Verschiedene Cache-Verhalten innerhalb eines vService werden von einem einzigen Panel aus verwaltet.

ETag-Unterstützung eliminiert unnötige Datenübertragung

ETag kann pro Regel aktiviert werden. Wenn ein Client dasselbe Objekt erneut anfordert und sich der Inhalt nicht geändert hat, erhält er eine Validierungsantwort anstelle des vollständigen Bodys. Dies reduziert den Bandbreitenverbrauch und ist besonders effektiv für statische Assets und selten ändernde API-Antworten.

Dynamische Cache-Keys erstellen separate Slots pro Kontext

Wenn dynamisches Caching aktiviert ist, können benutzerdefinierte Variablen zum Cache-Key hinzugefügt werden. Land, Gerätetyp, Mandanten-ID, A/B-Test-Gruppe oder ein aus einem JWT extrahierter Wert können alle Teil des Keys werden. Dieselbe URL trennt sich sauber über Kontexte hinweg. Dies macht Caching für moderne API- und SaaS-Szenarien praktikabel.

Host-Ignorierung konsolidiert Multi-Domain-Inhalte in einem Cache-Slot

Wenn dasselbe Backend identischen Inhalt unter mehreren Domains bereitstellt, kann Host aus dem Cache-Key entfernt werden. Domains wie `a.example` und `b.example` können dann dasselbe gecachte Objekt teilen, was Cache-Duplikation reduziert. Diese Option sollte nur verwendet werden, wenn der Inhalt wirklich geteilt wird.

Query-Ignorierung verhindert, dass Tracking-Parameter den Cache zerstören

`utm_source`, Kampagnencodes und Analyse-Parameter können denselben Inhalt als verschiedene Objekte erscheinen lassen. Bei aktivierter Query-Ignorierung werden diese Parameter vom Cache-Key ausgeschlossen. Dieselbe Seite unter mehreren Tracking-Parameter-Varianten trifft das Backend nicht mehr wiederholt. Trefferquoten für öffentliche Inhalte verbessern sich spürbar.

Request-Check-Ignorierung begrenzt clientseitiges Cache-Busting

Einige Clients oder Bots fügen Header hinzu, die versuchen, das Caching bei jeder Anfrage zu umgehen. Request-Check-Ignorierung lässt dieses Verhalten bewusst ignorieren. Statische Inhalte und öffentliche API-Antworten werden vor unnötiger Backend-Last geschützt. Diese Einstellung sollte bei sicherheitssensitiven Endpoints sorgfältig angewendet werden.

Response-Check-Ignorierung kann falsch konfigurierte Backend-Header überschreiben

Ein Backend kann fälschlicherweise `no-store` oder zu restriktive Cache-Header senden. Response-Check-Ignorierung ermöglicht Operatoren, diese Header bewusst zu umgehen. Cache-Vorteile werden ohne Änderung von Anwendungscode erzielt. Diese Option sollte nur für deterministische und sichere Antworten verwendet werden.

Caching aller Methoden unterstützt GraphQL-POST-Szenarien

Standard-HTTP-Cache-Verhalten konzentriert sich auf GET- und HEAD-Antworten. TR7 ermöglicht es Operatoren, auch POST-Antworten in den Cache-Umfang einzuschließen. Dies ist besonders nützlich, wenn GraphQL-Queries über POST ankommen. Body-Hash oder relevante FX-Variablen können zum Cache-Key hinzugefügt werden, um sichere Trennung zu gewährleisten.

Speicherbasierter Cache wird durch Soft-Reload verwaltet

Der Cache wird im Laufzeitspeicher gehalten. Konfigurationsänderungen werden über ein Soft-Reload-Modell angewendet; kein Laufzeit-Invalidierungs-Endpoint wird beansprucht. Das Aktualisieren eines Cache-Profils oder einer Regel aktualisiert das relevante Cache-Verhalten. Wenn das Gerät neu startet, beginnt der Cache wieder leer aufzuwärmen.

Am wenigsten zuletzt verwendete Objekte werden automatisch verdrängt

Wenn das Cache-Größenlimit erreicht wird, werden die am wenigsten verwendeten oder veralteten Objekte verdrängt. Operatoren müssen einzelne Objekte nicht manuell verwalten. Das Größenlimit verhindert, dass der Cache eines vService andere Services beeinträchtigt. Die Profilgröße kann für große Asset-Kataloge erhöht werden.

Operative Tiefe

Response-Caching sollte zusammen mit Cache-TTL, Objektgröße, Key-Design, dem Invalidierungsmodell und Sicherheitsgrenzen geplant werden.

01

Cache-Größe

Die maximale Größe für ein Cache-Profil wird in MB definiert; bis zu 2048 MB pro Profil werden unterstützt. Größere Profile eignen sich für große Asset-Kataloge; ein niedrigeres Limit ist für kleine API-Antwort-Caches ausreichend.

02

Minimaler Timeout

Ein sehr kurzer TTL verursacht Cache-Thrashing und mindert den Caching-Vorteil. TR7 erzwingt ein Minimum von 10 Sekunden, um unnötige Füll-und-Leerzyk­len zu verhindern. TTL sollte auf die Aktualisierungshäufigkeit jedes Endpoints abgestimmt werden.

03

Cache-Key-Sicherheit

Ein schlecht entworfener Cache-Key kann benutzer- oder mandantenspezifischen Inhalt im falschen Kontext zurückgeben. Wenn eine Differenzierung nach Mandant, Land, Gerätetyp oder Benutzersegment benötigt wird, müssen diese Werte in die dynamischen Cache-Keys aufgenommen werden. Sensitive Endpoints sollten standardmäßig vom Caching ausgeschlossen werden.

04

Neustart-Verhalten

Der Cache ist speicherbasiert; er startet leer, wenn das Gerät oder der Service neu startet. Dies eliminiert die Komplexität des persistenten Festplatten-Caches. Der Cache wärmt sich mit der initialen Traffic-Welle wieder auf.

05

Regelbasierte Aktualisierung

Kein Laufzeit-Invalidierungs-Endpoint wird beansprucht. Das Cache-Verhalten wird durch Bearbeiten von Profilen oder Regeln und Auslösen eines Soft-Reloads verwaltet. Um das Verhalten eines bestimmten Endpoints zu ändern, aktualisieren Sie die relevante Cache-Regel.

06

Audit und Betrieb

Cache-Profil-, Timeout-, Ignore-Optionen und Änderungen an dynamischen Keys sollten im Audit-Log erfasst werden. Wer welches Endpoint-Cache-Verhalten geändert hat, ist sichtbar. Dies ist besonders wichtig für Compliance und Vorfall-Analyse.

Wann zu verwenden

Länderbasiertes Caching für E-Commerce-Produktkataloge

Produktseiten und Katalog-APIs werden für einen definierten Zeitraum gecacht. Land wird zum Cache-Key hinzugefügt, sodass Märkte mit unterschiedlichen Preisen oder Lagerbeständen den korrekten Inhalt erhalten.

Kurzlebiges Caching für öffentliche API-Antworten

Nachrichten-, Ankündigungs- oder öffentliche Inhalts-Endpoints können für einige Minuten gecacht werden. Query-Ignorierung verhindert, dass Tracking-Parameter die Trefferquote senken.

Mandantenspezifische Isolation für Multi-Mandanten-SaaS-Inhalte

Mandanten-ID oder ein benutzerdefinierter Header wird zum Cache-Key hinzugefügt. Derselbe Pfad wird sicher für verschiedene Mandanten zu separaten Cache-Slots geroutet.

Kontrolliertes Caching von GraphQL-POST-Query-Antworten

Selbst wenn GraphQL-Queries über POST ankommen, können deterministische Queries gecacht werden. Body-Hash oder relevante FX-Variablen werden zum Cache-Key hinzugefügt, um das Risiko zu minimieren, eine falsche Antwort zurückzugeben.

Statischen Asset-Traffic vom Backend entlasten

CSS, JS, Bilder und Font-Dateien werden mit einem langen TTL gecacht. Mit aktiviertem ETag überspringen Clients den vollständigen Body-Download, wenn unveränderter Inhalt angefordert wird.

Separater Render-Cache für Mobile und Desktop

User-Agent-Familie oder Geräteklasse wird zum Cache-Key hinzugefügt. Dieselbe URL wird in separaten Cache-Slots für Mobile und Desktop gehalten.

Häufig gestellte Fragen

Wie funktionieren Standard-Header wie Cache-Control und ETag mit TR7?
TR7 wendet standardmäßig RFC-basiertes Cache-Verhalten an: Es berücksichtigt Cache-Control-Direktiven, den ETag-Validierungsfluss und den Vary-Header. Bei Bedarf können Operatoren diese Kontrollen bewusst überschreiben — beispielsweise wenn ein falsch konfiguriertes Backend `no-store` sendet, erlaubt Response-Check-Ignorierung das Fortsetzen des Cachings.
Was ist der Unterschied zwischen dynamischen Cache-Keys und dem Vary-Header?
Der Vary-Header öffnet für jeden Header-Unterschied einen neuen Cache-Slot, was die Trefferquoten erheblich reduzieren kann. TR7s dynamisches Cache-Key-Modell lässt Operatoren nur die Variablen hinzufügen, die sie tatsächlich benötigen — Land, Gerät, Mandanten-ID — zum Key. Cache-Effizienz wird erhalten, während das Risiko, falschen Inhalt zurückzugeben, reduziert wird.
Können einige Endpoints gecacht werden, während andere im selben vService ausgeschlossen werden?
Ja. Mehrere Regeln können innerhalb eines einzelnen Cache-Profils definiert werden; jede Regel bindet sich über die FX-Bedingungs-Engine an Pfad-, Methoden-, Header- oder Cookie-Werte. Beispielsweise kann `/assets/*` mit einem langen TTL gecacht werden, während `/api/cart` oder `/api/checkout` per Regel ausgeschlossen werden. Diese Entscheidungen werden auf der ADC-Schicht ohne Code-Änderungen getroffen.
Wie funktioniert Cache-Invalidierung — gibt es eine Laufzeit-API?
TR7 beansprucht keinen Laufzeit-Invalidierungs-Endpoint. Das Cache-Verhalten wird durch Bearbeiten von Profilen oder Regeln und Auslösen eines Soft-Reloads verwaltet. Um das Verhalten eines bestimmten Endpoints zu ändern, aktualisieren Sie die relevante Cache-Regel und lösen Sie einen Soft-Reload aus. Der Cache ist speicherbasiert; er wird beim Neustart des Geräts oder Services auf leer zurückgesetzt.
Können GraphQL-POST-Antworten gecacht werden?
Ja. Die Aktivierung von `allowCacheAllMethods` bringt POST-Antworten in den Cache-Umfang. Für GraphQL-Szenarien können Body-Hash oder relevante FX-Variablen zum Cache-Key hinzugefügt werden, sodass verschiedene Queries in separaten Slots landen. Deterministische GraphQL-Antworten werden dann ohne wiederholte Backend-Round-Trips ausgeliefert.
Was sind die empfohlenen Werte für Cache-Größe und Timeout?
Bis zu 2048 MB pro Cache-Profil werden unterstützt — ein höherer Wert eignet sich für große statische Asset-Kataloge; ein niedrigerer Wert ist für kleine API-Antwort-Caches ausreichend. Der minimale Timeout beträgt 10 Sekunden, ein Limit, das existiert, um Cache-Thrashing zu verhindern. TTL sollte danach eingestellt werden, wie oft sich der Inhalt eines Endpoints ändert — beispielsweise 30 Minuten für einen Produktkatalog und 5 Minuten für einen Nachrichten-Feed.

Backend-Last mit Response-Caching reduzieren

Cache-Profile, bedingte Regeln, dynamische Keys und RFC-konforme Override-Optionen für Response-Caching. Lassen Sie uns ein Live-Setup auf Ihren eigenen Services durchgehen.