HTTP-Caching ist die Zwischenspeicherung von HTTP-Antworten durch Browser, Proxy-Server oder CDNs, um wiederholte Anfragen schneller zu beantworten und Netzwerkverkehr zu sparen. Die Regeln dafür sind in RFC 9111 (Nachfolger von RFC 7234) standardisiert.
Frische und Wiederverwendung
Eine gecachte Antwort darf nur innerhalb ihrer Freshness (Frische) wiederverwendet werden. Die Frische bestimmt Cache-Control über max-age (Sekunden) oder der veraltete Expires-Header. Ist die Antwort stale (veraltet), muss der Cache sie beim nächsten Zugriff gegen den Ursprungsserver validieren — idealerweise mit einem Conditional Request statt einer vollen Übertragung.
Arten von Caches
- Private Caches: nur ein Nutzer (Browser-Cache), speichern auch persönliche Antworten.
- Shared Caches: von vielen Nutzern geteilt (Proxy, CDN); sie dürfen keine personenbezogenen Daten halten und respektieren
private,s-maxageundpublic.
Validatoren
Zur Revalidierung dienen ETag (starker Validator, bytegenau) und Last-Modified (schwacher Validator, 1-Sekunden-Auflösung). Der Server antwortet auf eine Revalidierung mit 304 Not Modified ohne Body oder mit dem vollen Inhalt plus neuen Headern.
Cache-Control-Direktiven im Detail
no-store: nichts speichern (z.B. Zahlungsdaten).no-cache: speichern, aber vor jeder Nutzung revalidieren.must-revalidate: stale Antworten nicht ohne Revalidierung ausliefern.immutable: Inhalt ändert sich nie — ideal für Cache-Busting-Assets mit Hash im Dateinamen.- stale-while-revalidate: veraltete Antwort sofort liefern und im Hintergrund aktualisieren.