--- title: Cache-Control slug: Web/HTTP/Headers/Cache-Control tags: - Allgemeine Header - HTTP - HTTP-Header - Referenz translation_of: Web/HTTP/Headers/Cache-Control ---
Das allgemeine Header-Feld Cache-Control wird benutzt um Direktiven für Caching-Mechanismen, sowohl für Requests als auch für Responses, zu spezifizieren. Caching-Direktiven sind unidirektional, das bedeutet dass eine Direktive in einem Request nicht impliziert, dass die gleiche Direktive auch in einem Response zurückkommen muss.
| Header type | {{Glossary("General header")}} |
|---|---|
| {{Glossary("Forbidden header name")}} | nein |
| {{Glossary("Simple response header", "CORS-safelisted response-header")}} | ja |
Die Direktiven beachten Groß- und Kleinschreibung und haben optionale Argumente, die sowohl Token-Syntax als auch Zeichenketten mit Anführungszeichen verwenden. Mehrere Direktiven werden kommasepariert.
Standard Cache-Control Direktiven, die vom Client in einem HTTP Request verwendet werden können.
Cache-Control: max-age=<seconds> Cache-Control: max-stale[=<seconds>] Cache-Control: min-fresh=<seconds> Cache-Control: no-cache Cache-Control: no-store Cache-Control: no-transform Cache-Control: only-if-cached
Standard Cache-Control Direktiven, die vom Server in einer HTTP Response verwendet werden können.
Cache-Control: must-revalidate Cache-Control: no-cache Cache-Control: no-store Cache-Control: no-transform Cache-Control: public Cache-Control: private Cache-Control: proxy-revalidate Cache-Control: max-age=<seconds> Cache-Control: s-maxage=<seconds>
Cache-Control DirektivenErweiterungs Cache-Control Direktiven sind nicht Teil des Kern HTTP Caching Standard-Dokuments. Prüfen Sie die Unterstützung in der Kompatibilitätstabelle.
Cache-Control: immutable Cache-Control: stale-while-revalidate=<seconds> Cache-Control: stale-if-error=<seconds>
publicprivateno-cacheonly-if-cachedmax-age=<seconds>Expires, ist diese Direktive relativ zum Zeitpunkt des Requests.s-maxage=<seconds>max-age oder den Expires Header, bezieht sich allerdings nur auf geteilte Caches (z.B. Proxyserver) und wird von einem privaten Cachen ignoriert.max-stale[=<seconds>]min-fresh=<seconds>stale-while-revalidate=<seconds> {{experimental_inline}}stale-if-error=<seconds> {{experimental_inline}}must-revalidateproxy-revalidatemust-revalidate, aber bezieht sich nur auf geteilte Caches (z.B. Proxyserver) und wird von einem privaten Cache ignoriert.immutableIf-None-Match oder If-Modified-Since) , um auf Aktualisierungen zu prüfen Die Ressource . Clients, denen diese Erweiterung unbekannt ist, müssen sie nach der HTTP-Spezifikation ignorieren. In Firefox, immutable wird nur bei https:// Transaktionen beachtet. Für mehr Informationen, siehe auch diesen Blogpost.no-storeno-transformno-transform Direktive verbietet dies.Um Caching abzuschalten können Sie den folgenden Response Header schicken. Beachten Sie ggf. zusätzlich die Expires und Pragma Header.
Cache-Control: no-cache, no-store, must-revalidate
Für die Dateien einer Anwendung, die sich nicht ändern werden, können Sie normalerweise aggressives Caching nutzen, indem Sie den untenstehenden Response-Header senden. Dies schließt statische Dateien ein, die von der Anwendung bereitgestellt werden, wie z.B. Bilder, CSS- und JavaScript-Dateien. Beachten Sie außerdem den Expires Header.
Cache-Control: public, max-age=31536000
| Specification | Title |
|---|---|
| {{RFC("7234")}} | Hypertext Transfer Protocol (HTTP/1.1): Caching |
| {{RFC("5861")}} | HTTP Cache-Control Extensions for Stale Content |
| {{RFC("8246")}} | HTTP Immutable Responses |
{{Compat("http.headers.Cache-Control")}}