HTTP-Caching mit Cache-Headern
HTTP-Caching mit Cache-Headern
~13 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
API Platform unterstützt HTTP-Caching NACH Standard-Webkonventionen – RELEVANT für GET-lastige Ressourcen wie Tag (Kapitel 12), die sich SELTEN ändern.
Cache-Header pro Resource konfigurieren
#[ApiResource(
cacheHeaders: [
'max_age' => 3600,
'shared_max_age' => 3600,
'vary' => ['Authorization'],
],
// ...
)]
max_age gilt für PRIVATE Caches (Browser), shared_max_age für ÖFFENTLICHE Caches (Reverse-Proxy/CDN) – GENAU die zwei Direktiven aus dem STANDARD-HTTP-Cache-Control-Header.
Die Header prüfen
curl -k -i https://localhost/api/tags | grep -i cachecache-control: max-age=3600, public, s-maxage=3600
vary: AuthorizationAchtung: vary: Authorization ist HIER WICHTIG: OHNE diesen Header könnte ein gemeinsam genutzter Cache die Antwort für Nutzer A AN Nutzer B ausliefern – besonders KRITISCH bei Ressourcen mit nutzerabhängigem Inhalt (Kapitel 55).
Cache-Invalidierung
API Platform integriert sich OPTIONAL mit Varnish oder Symfony HttpCache und sendet AUTOMATISCH Invalidierungs-Anfragen (via PURGE/BAN-Requests), sobald sich eine Resource ÄNDERT – für UNSER lokales Setup OHNE eigenen Reverse-Proxy BLEIBT das ein KONZEPTIONELLER Überblick, keine praktische Konfiguration.
Wann sich Caching lohnt
- Ressourcen mit SELTENEN Änderungen und HÄUFIGEN Lesezugriffen (z. B.
Tag). - ÖFFENTLICH zugängliche Daten, bei denen ein SHARED Cache (CDN) den Ursprungsserver spürbar ENTLASTET.
- NICHT sinnvoll für stark PERSONALISIERTE oder HÄUFIG wechselnde Daten wie die eigene
/api/projects-Liste (Kapitel 55).
Tipp: OHNE cacheHeaders-Konfiguration sendet API Platform STANDARDMÄSSIG GAR KEINE aktiven Caching-Header – Caching ist eine BEWUSSTE, OPT-IN-Entscheidung pro Resource, KEIN automatisches Verhalten.