Welche HTTP-Header gibt es wofür – und wie wirken sie zusammen (Syntax, RFC, Caching, Security)?

HTTP-Header steuern in der Praxis weit mehr als nur Metadaten zu einer Anfrage oder Antwort: Sie beeinflussen Cache-Entscheidungen in Browsern, Proxys und CDNs, legen Sicherheitsgrenzen fest, verhandeln Inhaltsdarstellungen, aktivieren oder verhindern Weiterleitungen und bestimmen, ob Verbindungen wiederverwendet werden. Gleichzeitig sind Header historisch gewachsen, teils in unterschiedlichen RFCs standardisiert und werden von Implementierungen nicht immer identisch interpretiert. Für Betrieb und Fehlersuche entsteht dadurch ein wiederkehrendes Problem: Eine einzelne Zeile wie Cache-Control, Vary oder Set-Cookie kann das Verhalten entlang der gesamten Request-Kette verändern, inklusive unerwarteter Wechselwirkungen mit ETag, Expires, Pragma oder Authentifizierungs-Headern. Wer APIs, Webanwendungen oder Edge-Infrastrukturen betreibt, benötigt daher eine belastbare Referenz, die Header nicht nur aufzählt, sondern Syntax, normative Quellen, Datentypen, Kompatibilitätsgrenzen sowie Sicherheits- und Caching-Effekte so beschreibt, dass Konfigurationen und Debugging in realen Proxy- und CDN-Topologien nachvollziehbar werden.

HTTP-Header als Protokollelement: Syntax, Semantik, ABNF-Grundlagen und RFC-Einordnung

HTTP-Header sind strukturierte Metadaten im Nachrichtenformat von HTTP. Sie transportieren Steuerinformationen und Eigenschaften zu Darstellung, Aushandlung, Authentisierung, Caching, Weiterleitung und Verbindungsmanagement. In HTTP/1.1 erscheinen Header als Zeilen im Nachrichtenkopf; in HTTP/2 und HTTP/3 werden sie als benannte Felder in binär gerahmten Header-Blöcken übertragen. Unabhängig von der Transportkodierung bleibt das semantische Modell gleich: Eine HTTP-Nachricht enthält eine Menge von Header-Feldern, deren Interpretation durch Standards (RFCs) und durch registrierte Feldnamen festgelegt ist.

Kein Angebot verfügbar.
ℹ︎ Affiliate-Link: Wenn Sie über diesen Link einkaufen, erhält der Betreiber dieser Website möglicherweise eine Provision. Für Sie bleibt der Preis dadurch gleich. Zuletzt aktualisiert am 26. Juni 2026 um 4:40. Die hier gezeigten Preise können sich zwischenzeitlich auf der Seite des Verkäufers geändert haben. Alle Angaben ohne Gewähr.
(**) UVP: Unverbindliche Preisempfehlung

Preise inkl. MwSt., zzgl. Versandkosten

Feldzeile, Feldname und Feldwert: syntaktisches Grundmodell

Das normative Basisformat für Header-Felder wird durch die HTTP Semantics (RFC 9110) und das HTTP/1.1 Messaging (RFC 9112) beschrieben. Ein Header-Feld besteht aus einem Feldnamen, gefolgt von einem Doppelpunkt, optionalem Whitespace und dem Feldwert. Feldnamen sind ASCII und case-insensitive; praktisch werden sie in der Schreibweise bewahrt, dürfen aber nicht als case-sensitive verglichen werden. Ein Header kann in einer Nachricht mehrfach vorkommen, sofern seine Semantik dies erlaubt; andernfalls gilt ein Mehrfachauftreten als ungültig oder muss zusammengeführt werden, abhängig von der jeweiligen Felddefinition.

Für HTTP/2 (RFC 9113) und HTTP/3 (RFC 9114) entfällt die Zeilenrepräsentation; Header-Felder werden über HPACK (RFC 7541) bzw. QPACK (RFC 9204) komprimiert und in Frames transportiert. Daraus folgt eine zentrale Konsequenz: Sicherheits- und Robustheitsanforderungen beziehen sich nicht nur auf das Parsing von Textzeilen, sondern auch auf die Normalisierung von Feldnamen, die Behandlung wiederholter Felder und auf Größenlimits (Header-Liste, einzelne Werte), die in Implementierungen und in Proxys/CDNs oft gesondert durchgesetzt werden.

Element Normativer Bezug Präzisierung
Header-Feldname RFC 9110 Token; case-insensitive Vergleich; nur zulässige Zeichen aus dem HTTP-Tokenraum.
Header-Feldwert RFC 9110 Feldwert-Syntax je Header; häufig Listenstrukturen mit Komma-Trennung oder Parameter mit ;.
HTTP/1.1 Wire-Format RFC 9112 field-name ":" OWS field-value OWS; CRLF als Zeilenende; obs-fold (Zeilenfortsetzung) in neuen Nachrichten nicht mehr zulässig.
HTTP/2 RFC 9113, RFC 7541 Binäre Frames; Header als Name/Wert-Paare; Pseudo-Header (:method, :path, …) vor regulären Feldern.
HTTP/3 RFC 9114, RFC 9204 QUIC-Transport; QPACK; gleiche Semantik wie HTTP/2, andere Transport- und Verlust-/Reordering-Eigenschaften.

ABNF-Grundlagen: Tokens, Listen und Parameter

Die formale Grammatik wird in den RFCs als ABNF (Augmented Backus–Naur Form) angegeben. In der Praxis dominieren wenige Muster: Token-basierte Werte (z. B. Direktiven), Listen von Elementen (durch Kommas getrennt), sowie Parameterlisten (häufig durch Semikolon getrennt). ABNF ist dabei nicht nur Dokumentation, sondern die Grundlage für Interoperabilität: Schon kleine Abweichungen bei Whitespace, bei Quotierung oder bei der Interpretation von Kommas können dazu führen, dass Proxys unterschiedliche Werte sehen oder dass Signaturen (z. B. bei authentifizierten Requests) nicht mehr verifizieren.

Komma-separierte Listen sind in HTTP besonders verbreitet, doch nicht jeder Header ist eine Liste. Mehrfach vorkommende Felder dürfen nur dann zu einer Liste zusammengeführt werden, wenn der jeweilige Header dies explizit erlaubt. Implementierungen sollten daher nicht pauschal „joinen“, sondern header-spezifisch verarbeiten. Zudem sind strukturierte Header-Felder nach RFC 8941 ein eigener, moderner Mechanismus (z. B. Sec-CH-UA-Familie in Teilen), der ABNF-Äquivalente bewusst durch strengere Parsingregeln ersetzt; diese Felder sind im jeweiligen Registry- bzw. Header-Definitionstext als „Structured Field“ erkennbar.

  • Token und Case-Insensitivität: Feldnamen und viele Token-Werte (z. B. Direktiven in Cache-Control) werden nach Spezifikation case-insensitiv verglichen; eine kanonische Ausgabeform ist Konvention, aber keine semantische Vorgabe.
  • Whitespace-Regeln: Optionaler Whitespace (OWS) ist an definierten Stellen zulässig; Parser sollten tolerieren, Serializer sollten minimieren. In HTTP/1.1 sind Zeilenumbrüche innerhalb von Headern („folding“/obs-fold) in neuen Nachrichten nicht mehr erlaubt.
  • Komma-Listen vs. Mehrfachfelder: Nur „list-based fields“ dürfen aus mehreren Feldzeilen zu einem Wert zusammengeführt werden; Gegenbeispiele existieren, bei denen Kommas innerhalb eines einzelnen Werts eine andere Bedeutung haben.
  • Quoted-String und Escaping: Einige Header nutzen quoted-string-Syntax; korrektes Escaping verhindert Parsingfehler, besonders in Parametern wie Content-Disposition oder in Challenge-Parametern von WWW-Authenticate.
  • Structured Fields (RFC 8941): Wo eingesetzt, gelten deterministische Parsing-/Serialisierungsregeln (Dictionary, List, Item). Das reduziert Ambiguität, ist aber nicht rückwirkend auf klassische Header anwendbar.

Semantik und Klassifikation: Representation, Routing, Conditionals, Controls

Semantisch lassen sich Header-Felder nach ihrer Rolle im HTTP-Modell gruppieren. „Representation Metadata“ (z. B. Content-Type, Content-Language) beschreibt die Repräsentation eines Resources. „Request Modifiers“ (z. B. Accept, Accept-Encoding) steuern die Aushandlung. „Conditional“ Header (z. B. If-None-Match, If-Modified-Since) koppeln Requests an Validatoren und Zeitstempel. „Controls“ (z. B. Cache-Control) beeinflussen Caches und Zwischenstationen. Daneben existieren „Authentication“ und „Security Context“-Header (z. B. Authorization, Origin), die strikt nach dem Bedrohungsmodell (Credential Leakage, Request Smuggling, Cache Poisoning) interpretiert werden müssen.

Für Proxys und CDNs ist entscheidend, ob ein Header „end-to-end“ oder „hop-by-hop“ wirkt. Hop-by-hop-Header gelten nur für eine einzelne Transportverbindung und dürfen nicht weitergeleitet werden. In HTTP/1.1 wurde dies über Connection und die dort aufgelisteten Feldnamen ausgedrückt; in HTTP/2 und HTTP/3 ist Connection als Feldname verboten, und hop-by-hop-Semantik wird durch die Protokollebene (z. B. Stream-/Frame-Mechanismen) bzw. durch explizite Vorgaben pro Header ersetzt. Typische hop-by-hop-Beispiele sind Transfer-Encoding (in HTTP/2/3 nicht zulässig) oder Verbindungsparameter; TE ist in HTTP/2/3 nur in der Form TE: trailers zulässig.

RFC-Einordnung und Registries: „Spec first“ statt De-facto

Die maßgeblichen Kern-RFCs sind seit der HTTP-bis-Reihe konsolidiert: RFC 9110 (Semantics), RFC 9111 (Caching), RFC 9112 (HTTP/1.1), RFC 9113 (HTTP/2), RFC 9114 (HTTP/3). Viele Header-Definitionen leben in spezialisierten RFCs, etwa für Authentisierung, Range-Requests oder Sicherheitspolitiken. Ergänzend pflegt IANA die HTTP Field Name Registry und related Registries. Für ein Referenzwerk ist diese Trennung relevant: Ein Feldname kann verbreitet sein, aber ohne klare Standardspezifikation abweichende Semantik in Zwischenstationen erzeugen. Umgekehrt kann ein standardisierter Header durch „HTTP Caching“ oder Browser-Sicherheitsmodelle zusätzliche, nicht rein RFC-getriebene Praxisregeln erhalten, die sich jedoch stets an den normativen Text anlehnen müssen.

Bei der Einordnung hilft eine saubere Referenzierung der Quelle pro Header: Semantik-Quelle (welcher RFC definiert Bedeutung und Syntax), Transport-Quelle (welcher RFC regelt Übertragung/Verbote in HTTP/2/3), sowie Registry-Status (permanent/provisional, obsolet). Für Implementierungen ist außerdem wichtig, ob ein Header durch „intermediary transformations“ beeinflusst werden darf. Einige Felder sind ausdrücklich nicht transformierbar, andere nur unter bestimmten Bedingungen. Diese Differenz entscheidet darüber, ob ein CDN komprimieren, normalisieren oder Header umsortieren darf, ohne die Bedeutung zu verändern.

Katalog der Request- und Response-Header: Richtung, RFC-Quelle, Datentyp, Beispielwerte, Sicherheits- und Caching-Wirkung, Kompatibilität

Ein belastbarer Header-Katalog braucht konsistente Metadaten: Richtung (Request/Response), normative Quelle (RFC und Abschnitt), Datentyp bzw. Grammatik (z. B. Token, Quoted-String, HTTP-Date), typische Beispielwerte sowie eine Einordnung nach Sicherheitswirkung, Cache-Semantik, Proxy/CDN-Verhalten und Interaktionen. Viele Felder sind in RFC 9110 (HTTP Semantics) und RFC 9111 (HTTP Caching) definiert; einzelne Mechanismen (z. B. CORS, Cookies, Structured Fields) liegen in eigenständigen RFCs. Zusätzlich existieren de-facto Header, die nicht standardisiert sind; sie sollten klar als proprietär markiert werden, weil ihre Verarbeitung zwischen Implementierungen variiert.

Auszeichnungs- und Datentyp-Konventionen (Syntax)

HTTP-Headerfelder sind name/value-basiert; Feldnamen sind ASCII und case-insensitive. Für viele sicherheits- und cache-relevante Header sind ABNF-Regeln in den RFCs festgelegt. Moderne Spezifikationen setzen zunehmend auf „Structured Fields“ (RFC 8941), die klare Typen wie Boolean, Integer, String, Token, Byte Sequence, List und Dictionary definieren. Das vereinfacht robustes Parsing, reduziert Ambiguität und verbessert Interoperabilität zwischen User-Agents, Proxys und Origin-Servern.

Bei klassischen Headern dominieren Tokens und Parameterlisten (z. B. Cache-Control: max-age=60, must-revalidate), während Datumsfelder das HTTP-Date-Format nutzen (z. B. Expires, If-Modified-Since). Für Referenzwerte sollten Beispiele stets syntaktisch korrekt sein (keine lokalen Datumsformate, keine nicht erlaubten Anführungszeichen) und den jeweiligen Kontext abbilden, etwa mehrere Direktiven in Cache-Control oder ein stark/weak Validator-Präfix in ETag.

  • Token/Parameterlisten: Direktiven und Parameter werden üblicherweise kommasepariert notiert, z. b. Cache-Control: public, max-age=300, stale-while-revalidate=30.
  • HTTP-Date: Datumswerte verwenden das IMF-fixdate-Format, z. b. Expires: Wed, 21 Oct 2015 07:28:00 GMT.
  • Validatoren: Entity-Tag-Werte sind quoted, optional weak, z. b. ETag: "abc123" oder ETag: W/"abc123".
  • Structured Fields: maschinenlesbare Typen nach RFC 8941, z. b. Sec-Fetch-Site: same-origin (Token) oder Permissions-Policy: geolocation=() (Policy-Syntax, nicht RFC 8941, aber strikt spezifiziert).

Katalog-Ausschnitt: repräsentative Header mit Metadaten

Die folgende Tabelle ist ein exemplarischer Ausschnitt. Sie zeigt, wie sich Richtung, RFC-Bezug, Werttyp, typische Werte sowie Sicherheits- und Caching-Effekte zusammenführen lassen. In einem vollständigen Referenzkatalog werden zusätzlich Interaktionshinweise (z. b. „überschreibt/ergänzt“) und Kompatibilitätsnoten (z. b. „Hop-by-hop“, „nur HTTPS“, „Browser-abhängig“) pro Header gepflegt.

Header Richtung RFC-Quelle Datentyp / Grammatik Beispielwert Sicherheitswirkung Caching-Einfluss Kompatibilität / Hinweise
Host Request RFC 9110 authority Host: example.com Relevant für Virtual Hosting; Basis für Origin-Routing, daher Ziel für Host-Header-Angriffe bei Fehlkonfiguration. Indirekt: beeinflusst Cache-Key durch Origin-Auswahl. Pflicht in HTTP/1.1; in HTTP/2/3 über :authority abgebildet.
Authorization Request RFC 9110 (Scheme-abhängig) credentials (Scheme + Token) Authorization: Bearer <token> Transport sensibler Credentials; muss gegen Logging, Referrer-Leaks und Mischkontexte abgesichert werden. Antworten auf autorisierte Requests sind häufig nicht öffentlich cachebar; zusätzliche Steuerung über Cache-Control/Vary üblich. Semantik abhängig vom Auth-Scheme; Intermediaries können Header entfernen/transformieren (Policy-abhängig).
Cookie Request RFC 6265 cookie-string Cookie: sessionid=... Session-/Tracking-Träger; Risiko bei ungeschützten Attributen (z. b. fehlendes Secure/HttpOnly/SameSite am Set-Cookie). Stark: personalisierte Antworten; häufig Cache-Bypass in CDNs; Vary: Cookie ist möglich, führt aber in Shared Caches oft zu starker Fragmentierung. Mehrere Cookies in einem Header; Größen-/Anzahlgrenzen implementierungsabhängig.
Cache-Control Request/Response RFC 9111 directive-list Cache-Control: max-age=60 Kann Revalidierung erzwingen (no-cache) oder Speicherung verhindern (no-store). Zentral: TTL, Revalidierung, Shared-Cache-Politik (public/private/s-maxage). Direktivenkombinationen haben Prioritäten; Konflikte müssen nach RFC ausgewertet werden.
ETag Response RFC 9110 entity-tag ETag: "686897696a7c876b7e" Kann Tracking-Vektor sein, wenn als stabiler Identifier genutzt; ansonsten Integritäts-/Konsistenzhilfe. Revalidierungsbasis zusammen mit If-None-Match; reduziert Bandbreite bei 304. Stark vs. weak Validator; Interaktion mit Content-Coding/Varianten beachten.
If-None-Match Request RFC 9110 entity-tag list If-None-Match: "686897696a7c876b7e" Keine direkte Sicherheitsfunktion, aber Teil konditionaler Zugriffe. Ermöglicht 304-Responses; beeinflusst Cache-Revalidation. Hat Vorrang gegenüber If-Modified-Since, wenn beide gesendet werden.
Vary Response RFC 9110 field-name list / * Vary: Accept-Encoding Schützt vor Cache-Poisoning durch saubere Variantentrennung; falsches Vary kann Leaks begünstigen. Steuert Cache-Key-Variation; Vary: * verhindert effektives Caching. In CDNs teils begrenzte Vary-Unterstützung; Vary: Cookie kann Cache stark fragmentieren.
Strict-Transport-Security Response RFC 6797 directive-list Strict-Transport-Security: max-age=31536000; includeSubDomains Erzwingt HTTPS (HSTS); reduziert Downgrade-/SSL-Strip-Risiken. Kein Cache-Header, aber beeinflusst Transportpfad und damit Proxy-Ketten (HTTPS-only). Nur über HTTPS wirksam; Browser speichern Policy lokal.
Content-Security-Policy Response W3C CSP Level 3 (keine RFC) policy string Content-Security-Policy: default-src 'self'; frame-ancestors 'none' Mitigiert XSS/Injection; reduziert Datenabfluss über unautorisierte Quellen. Indirekt: kann Inlining/Asset-Strategien beeinflussen; keine Cache-Semantik. Browser-abhängige Directive-Unterstützung; Report-Varianten (...-Report-Only) separat.

Einordnung: Sicherheitswirkung vs. Caching-Semantik

Sicherheitswirkung entsteht entweder durch Transport- und Policy-Kontrollen (z. b. HSTS, CSP, Permissions Policy) oder durch Schutz vor unerwünschter Persistenz und Wiederverwendung von Antworten (z. b. Cache-Control: no-store bei sensitiven Ressourcen). Caching-Semantik wird primär durch Cache-Control, Expires, Validatoren (ETag, Last-Modified) und Variantentrennung (Vary) bestimmt. In Shared Caches (CDN, Forward Proxy) entscheidet zusätzlich, ob eine Antwort als öffentlich teilbar gilt; missverständliche Kombinationen können zu Datenlecks führen, etwa wenn personalisierte Antworten ohne private oder ohne ausreichendes Vary ausgeliefert werden.

  • Persistenz unterbinden: Cache-Control: no-store verhindert Speicherung in Caches; geeignet für Antworten mit Credentials, PII oder One-Time-Tokens.
  • Revalidierung erzwingen: Cache-Control: no-cache erlaubt Speicherung, verlangt aber Revalidierung vor Wiederverwendung; in Shared Caches oft mit ETag oder Last-Modified kombiniert.
  • Shared-Cache explizit steuern: Cache-Control: s-maxage=600 priorisiert TTL in Shared Caches gegenüber max-age; in CDNs relevant, wenn Browser kürzer cachen sollen.
  • Variantentrennung absichern: Vary: Accept-Encoding verhindert, dass eine komprimierte Variante fälschlich für Clients ohne passenden Decoder wiederverwendet wird; Vary: Origin oder Vary: Cookie kann erforderlich sein, ist aber cache-fragmentierend.

Kompatibilität und Interoperabilität in Proxys/CDNs

Kompatibilitätsnoten sollten zwischen End-to-End-Headern und Hop-by-hop-Headern trennen. Hop-by-hop-Felder (klassisch über Connection benannt) gelten nur für eine Transportverbindung und dürfen nicht weitergeleitet werden; HTTP/2 und HTTP/3 verbieten solche Mechanismen weitgehend auf der Header-Ebene, weil Verbindungsdetails anders modelliert sind. Für CDNs und Reverse Proxys ist außerdem entscheidend, welche Header in den Cache-Key einfließen (häufig konfigurierbar) und welche Header als „cache-busting“ interpretiert werden (z. b. Authorization, Cookie). Ein Katalog sollte daher neben RFC-Konformität auch praktische Defaults dokumentieren, ohne proprietäre Regeln als Standard auszugeben.

Bei Sicherheitsheadern ist die Kompatibilität primär clientseitig: Browser implementieren Policies unterschiedlich schnell und teilweise mit abweichenden Directive-Namen. Bei Cache-Headern liegt die Varianz eher in Zwischenspeichern: Shared Caches müssen RFC 9111 folgen, können aber Obergrenzen, Heuristiken oder administrative Overrides anwenden. Solche Overrides sollten als Umgebungseigenschaft beschrieben werden, nicht als Eigenschaft des Headers selbst.

Interaktionsmatrix und Edge-Praxis: Cache-Control/ETag/Expires/Pragma-Kombinationen, Vary/Content-Negotiation sowie Auswirkungen auf Proxy- und CDN-Caches

HTTP-Caching entsteht aus dem Zusammenspiel mehrerer Header-Familien: Freshness (z. b. Cache-Control, Expires), Validierung (z. b. ETag, Last-Modified), Transportbedingungen (z. b. Age) und Schlüsselbildung für Varianten (insbesondere Vary). In Edge-Umgebungen wirken zusätzlich Heuristiken, Normalisierungen und Policy-Layer von Proxies und CDNs. Daraus ergeben sich Interaktionen, die sich nicht als „ein Header entscheidet“ beschreiben lassen, sondern als deterministische Prioritäten plus Implementierungsdetails.

Prioritätenmodell: Freshness vs. Validierung (HTTP Semantics)

Für Caches steht zuerst die Frage im Raum, ob eine Response frisch ist. Freshness berechnet sich primär aus Cache-Control-Direktiven wie max-age oder s-maxage (für Shared Caches). Expires dient als älterer, datumsgestützter Fallback, wird aber in der Praxis durch Cache-Control übersteuert, wenn beides vorhanden ist. Ist eine Response nicht frisch, folgt die zweite Frage: lässt sie sich revalidieren? Dann kommen Validatoren ins Spiel: ETag in Verbindung mit If-None-Match (starker/ schwacher Validator) oder Last-Modified in Verbindung mit If-Modified-Since. Revalidierung kann Bandbreite sparen, ändert aber nicht die Cache-Schlüsselbildung: Varianten bleiben Varianten.

Pragma: no-cache ist historisch für HTTP/1.0 und wird heute primär als Request-Hinweis interpretiert. Moderne Caches orientieren sich an Cache-Control: no-cache (Request oder Response), das präziser definiert ist. In Mischlandschaften (Legacy-Proxies, Appliances) kann Pragma dennoch relevant bleiben; eine doppelte Setzung (Cache-Control: no-cache plus Pragma: no-cache) wird deshalb häufig als Kompatibilitätsmaßnahme eingesetzt, ohne semantisch zusätzliche Wirkung in HTTP/1.1+ zu garantieren.

Kombination (Response) Erwartetes Cache-Verhalten (generisch) Edge-/Proxy-Praxis und typische Fallstricke
Cache-Control: max-age=600 + ETag: "abc" 10 Minuten frisch; danach Revalidierung via If-None-Match, häufig 304. CDNs halten Objekt bis Freshness-Ende ohne Origin-Kontakt; danach „conditional fetch“. Bei instabilen ETags (z. b. pro Request) sinkt Hit-Rate.
Cache-Control: no-cache + ETag Darf gespeichert werden, muss aber vor Wiederverwendung revalidieren. Wirkt wie „always revalidate“ und kann Origin-Last erzeugen; CDNs nutzen teils „revalidate on edge“ mit Coalescing (Request-Bündelung) je nach Produkt.
Cache-Control: no-store Darf nicht gespeichert werden (weder Browser noch Shared Cache). Einige Edge-Systeme respektieren no-store strikt; Debugging erschwert, weil keine Cache-Artefakte entstehen. Nicht mit „private“ verwechseln.
Cache-Control: public, s-maxage=3600 + max-age=0 Shared Cache: 1 h frisch; Browser: sofort revalidieren. Nützlich bei CDN vor Browsern: Edge liefert aus Cache, Clients revalidieren am Edge. Voraussetzung: CDN behandelt sich als Shared Cache und respektiert s-maxage.
Cache-Control: max-age=0 + Expires in der Zukunft max-age dominiert; Response gilt sofort als stale und erfordert Revalidierung. Kommt in Fehlkonfigurationen vor (Framework setzt Expires global). Führt zu schwer erklärbaren „Cache scheint ignoriert“ Symptomen.
Pragma: no-cache ohne Cache-Control Uneinheitlich; oft wie Request-„bypass“ oder „revalidate“ behandelt, semantisch unsauber. Kann bei Legacy-Proxies Wirkung entfalten; sollte in HTTP/1.1-Konfigurationen nicht alleinstehend verwendet werden.

Interaktionsmatrix: Cache-Control, Expires und Pragma als Entscheidungsbaum

Für Freshness gilt in der Praxis folgende Hierarchie: Cache-Control-Direktiven bestimmen die Lebensdauer; Expires wird als Fallback ausgewertet, wenn keine explizite Freshness aus Cache-Control ableitbar ist. Pragma beeinflusst primär Requests und dient als Kompatibilitätssignal. Zusätzlich verändern Direktiven die Zulässigkeit der Speicherung: private verhindert das Speichern in Shared Caches, erlaubt aber Browser-Caching; public kann Responses, die sonst nicht in Shared Caches gespeichert würden (z. B. weil sie eine Authorization-Anfrage beantwortet haben), für Shared Caches explizit freigeben, sofern keine anderen Verbote greifen.

  • Freshness-Basis: Cache-Control: s-maxage=... (Shared Cache) hat Vorrang vor Cache-Control: max-age=...; fehlen beide, wird häufig Expires: ... herangezogen.
  • Revalidierungszwang: Cache-Control: no-cache erlaubt Speicherung, erzwingt aber Revalidierung vor Wiederverwendung; mit ETag wird daraus typischerweise ein If-None-Match-Workflow mit 304.
  • Speicherverbot: Cache-Control: no-store untersagt das Schreiben in Caches; auch ein vorhandenes ETag hilft dann nicht, weil es keinen Cache-Eintrag geben darf.
  • Legacy-Request-Signale: Pragma: no-cache wird bei Requests oft als „nicht aus Cache bedienen“ interpretiert; robuste Steuerung erfolgt über Cache-Control: no-cache oder Cache-Control: max-age=0 im Request.
  • Übersteuerungsfallen: Ein Response-Mix aus Cache-Control: max-age=0 und weit in der Zukunft liegendem Expires führt trotz „schönem Datum“ zu sofortiger Staleness, weil Cache-Control die Freshness festlegt.

ETag an der Edge: Validator-Stabilität, Recompression und Cache-Key

ETag-Werte müssen über alle Instanzen hinweg stabil sein, wenn Shared Caches revalidieren sollen. Instabile ETags (z. b. mit Zeitstempel, non-deterministischer Serialisierung oder Knotenspezifika) erhöhen die Rate an 200-Antworten bei eigentlich unverändertem Inhalt. Zusätzlich kollidiert ETag mit Edge-Transformationen: Komprimierung oder Bild-/HTML-Optimierung kann den Body verändern, während der Origin-ETag unverändert durchgereicht wird. Dann schlagen If-None-Match-Vergleiche fehl, obwohl der semantische Inhalt identisch ist. Abhilfe entsteht nur durch konsequente End-to-End-Strategie: Entweder keine Body-Transformation in Shared Caches für ETag-geschützte Objekte, oder ETag-Erzeugung auf der finalen Repräsentation (inklusive Content-Coding) beziehungsweise Nutzung schwacher Validatoren, wenn das Modell es erlaubt.

Für Varianten gilt: Ein Cache kann denselben URL-Pfad mehrfach speichern, wenn Vary die Schlüsselbildung erweitert. Das ist kein Randthema, sondern ein Hauptgrund für unerwartete Cache-Misses: Ein Objekt mit Vary: Accept-Encoding erzeugt mindestens getrennte Einträge für gzip/br/identity, abhängig davon, welche Encodings ein Client (oder ein vorgelagerter Proxy) anbietet. Bei CDNs kommt hinzu, dass manche Plattformen Accept-Encoding normalisieren oder selbst wählen; dadurch kann Vary entweder redundant werden oder, bei unglücklicher Konfiguration, zu einer Cache-Fragmentierung führen.

Vary und Content Negotiation: Korrektheit vor Hit-Rate

Vary schützt vor dem Ausliefern falscher Repräsentationen aus dem Cache. Das gilt für klassische Content Negotiation über Accept (z. b. JSON vs. HTML), Accept-Language (Sprache), Accept-Encoding (Komprimierung) und für CORS-abhängige Antworten, sofern eine Variation tatsächlich stattfindet. Eine überbreite Variation ist jedoch ein direkter Multiplikator auf den Cache-Key und senkt die Wiederverwendungswahrscheinlichkeit. Besonders kritisch ist Vary: User-Agent: Der Header ist hochgradig divers, ändert sich häufig und führt in Shared Caches schnell zu einer faktischen Deaktivierung des Nutzens. Für Geräteanpassungen ist eine separate URL-Strategie oder serverseitige Feature-Detection oft robuster.

Vary-Wert Typischer Zweck Proxy/CDN-Auswirkung
Vary: Accept-Encoding Getrennte Caches für komprimierte/unkomprimierte Repräsentationen. Kann Cache fragmentieren; viele Edges normalisieren Encodings. Bei Transformationen muss ETag-Strategie passen.
Vary: Accept-Language Sprachvarianten derselben Ressource. Hohe Variantenanzahl; sinnvoll nur bei tatsächlich wenigen Sprachen oder wenn Routing (z. b. /de/) nicht möglich ist.
Vary: Origin CORS-abhängige Antworten. Shared Cache speichert pro Origin-Header; bei vielen Origins sinkt Hit-Rate drastisch, Korrektheit hat Vorrang.
Vary: Authorization Antwort variiert nach Credentials (selten als Header-Vary; oft besser: private). Praktisch uncachebar in Shared Caches; häufiges Fehlmuster. Besser: Cache-Control: private oder token-unabhängige Ressourcen auslagern.

Shared Caches, CDNs und Forward Proxies: Age, Revalidation und Coalescing

In Shared Caches signalisiert Age die seit der Generierung oder erfolgreichen Validierung vergangene Zeit im Cache. Diese Zeit zählt zur Freshness-Berechnung hinzu, wodurch ein Objekt früher stale werden kann als der Origin es aus Sicht eines einzelnen Clients „gefühlt“ erwarten lässt. Bei Revalidierung ist entscheidend, ob der Cache conditional Requests weiterleitet oder selbst terminiert. Viele CDNs reduzieren Origin-Last mit Request-Coalescing: Wenn viele Clients gleichzeitig ein stale Objekt anfragen, sendet die Edge nur eine Revalidierung, während weitere Requests warten. Das Verhalten ist produkt- und policy-abhängig; semantisch bleibt der Mechanismus ein Spezialfall von „stale, dann validate“.

Forward Proxies (Unternehmensnetze) verändern die Lage zusätzlich, weil Requests aktiv Cache-Bypass-Signale tragen können, etwa Cache-Control: no-cache oder Cache-Control: max-age=0. Eine Response-Strategie, die ausschließlich auf „lange Freshness“ setzt, kann dadurch ausgehebelt werden. Robust werden Konfigurationen, wenn sie Korrektheit über Validatoren absichern (ETag/Last-Modified) und sensible Inhalte mit Cache-Control: private oder Cache-Control: no-store abgrenzen, statt auf implizite Annahmen über die Infrastruktur zu bauen.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Meroth IT-Service ist Ihr lokaler IT-Dienstleister in Frankfurt am Main für kleine Unternehmen, Selbstständige und Privatkunden


Kostenfreie Ersteinschätzung Ihres Anliegens?

❱ Nehmen Sie gerne Kontakt auf ❰

Werbung

Lenovo IdeaPad 3 17ALC6 Laptop | 17.3" Full HD Display | AMD Ryzen 7 5700U | 12GB RAM | 512GB SSD | AMD Radeon Grafik | Windows 11 Home | QWERTZ | grau | 3 Monate Premium Careℹ︎
€ 650,00
Nur noch 3 auf Lager
Preise inkl. MwSt., zzgl. Versandkosten
€ 694,01
Preise inkl. MwSt., zzgl. Versandkosten
HP 302 (X4D37AE) Original Druckerpatronenℹ︎
Ersparnis 7%
UVP**: € 45,44
€ 42,12
Auf Lager
Preise inkl. MwSt., zzgl. Versandkosten
€ 42,12
Preise inkl. MwSt., zzgl. Versandkosten
€ 43,99
Preise inkl. MwSt., zzgl. Versandkosten
UGREEN Nexode USB C Ladegerät 65W GaN Netzteil 3-Port PD Charger 60W PPS kompatibel mit MacBook Pro/Air, iPhone 17 Pro Max/16/15, iPads, Galaxy S24 Ultra/S23/S22(Schwarz)ℹ︎
Ersparnis 43%
UVP**: € 34,99
€ 19,92
Auf Lager
Preise inkl. MwSt., zzgl. Versandkosten
FRITZ!Box 6850 5G (Mobilfunk-Internet bis zu 1.300 MBit/s, WLAN AC+N bis 866 MBit/s (5 GHz) & 400 MBit/s (2,4 GHz), 4 x Gigabit-LAN, DECT-Basis, USB 3.0, geeignet für Deutschland)ℹ︎
€ 408,78
Nur noch 1 auf Lager
Preise inkl. MwSt., zzgl. Versandkosten
€ 440,90
Preise inkl. MwSt., zzgl. Versandkosten
€ 447,57
Preise inkl. MwSt., zzgl. Versandkosten
TP-Link TL-SG1005P Netzwerk-Switch 5-Port, Unmanaged, 5x Gigabit RJ45, 4x PoE+, 65Wℹ︎
€ 31,44
Preise inkl. MwSt., zzgl. Versandkosten
€ 37,90
Preise inkl. MwSt., zzgl. Versandkosten
€ 62,88
Preise inkl. MwSt., zzgl. Versandkosten
NETGEAR GS105GE LAN Switch 5 Port Netzwerk Switch (Plug-and-Play Gigabit Switch LAN Splitter, LAN Verteiler, Ethernet Hub, lüfterloses Metallgehäuse, ProSAFE Lifetime-Garantie), Blauℹ︎
Ersparnis 17%
UVP**: € 23,99
€ 19,80
Auf Lager
Preise inkl. MwSt., zzgl. Versandkosten
€ 19,90
Preise inkl. MwSt., zzgl. Versandkosten
€ 19,80
Preise inkl. MwSt., zzgl. Versandkosten
WD_BLACK C50 1 TB Speichererweiterungskarte für Xbox, Floral Fusion (offiziell lizenziert, Quick Resume, Xbox Velocity Architecture, 1 Monat Xbox Game Pass Ultimate, 1 Monat Discord Nitro)ℹ︎
Ersparnis 18%
UVP**: € 145,99
€ 118,99
Auf Lager
Preise inkl. MwSt., zzgl. Versandkosten
UGREEN Nexode 65W USB C Ladegerät 4-Port GaN Netzteil Mehrfach Schnellladegerät PD Charger unterstützt PPS 45W kompatibel mit MacBook Pro/Air, HP Laptop, iPad Serien, iPhone 17, Galaxy S24ℹ︎
Ersparnis 38%
UVP**: € 39,99
€ 24,67
Auf Lager
Preise inkl. MwSt., zzgl. Versandkosten
FRITZ!Repeater 6000 (WiFi 6 Repeater mit drei Funkeinheiten: 5 GHz (2 x bis zu 2.400 MBit/s), 2,4 GHz (bis zu 1.200 MBit/s), 2,5-Gigabit-LAN, deutschsprachige Version)ℹ︎
Ersparnis 27%
UVP**: € 259,00
€ 189,90
Auf Lager
Preise inkl. MwSt., zzgl. Versandkosten
€ 225,75
Preise inkl. MwSt., zzgl. Versandkosten
€ 244,99
Preise inkl. MwSt., zzgl. Versandkosten
Anker Nano II 65W USB C Ladegerät Netzteil mit Schnellladeleistung, GaN II Technologie, Kompatibel mit MacBook Pro/Air, Galaxy S20/S10, iPhone 17/Pro/iPhone Air/16/15, iPad, Pixel (Schwarz)ℹ︎
Ersparnis 53%
UVP**: € 39,99
€ 18,98
Auf Lager
Preise inkl. MwSt., zzgl. Versandkosten
Netgear Nighthawk RS200, Router, Schwarzℹ︎
€ 213,10
Preise inkl. MwSt., zzgl. Versandkosten
€ 215,99
Preise inkl. MwSt., zzgl. Versandkosten
€ 257,94
Preise inkl. MwSt., zzgl. Versandkosten
ASUS Vivobook 16 M1605YA Laptop | 16" WUXGA 16:10 IPS Display | AMD Ryzen 5 7430U | 16GB RAM | 512GB SSD | AMD Radeon | Win11 Home | QWERTZ | Cool Silverℹ︎
€ 727,75
Nur noch 1 auf Lager
Preise inkl. MwSt., zzgl. Versandkosten
€ 875,88
Preise inkl. MwSt., zzgl. Versandkosten
ℹ︎ Werbung / Affiliate-Links: Wenn Sie auf einen dieser Links klicken und einkaufen, erhalte ich eine Provision. Für Sie verändert sich der Preis dadurch nicht. Zuletzt aktualisiert am 26. Juni 2026 um 9:41. Die hier gezeigten Preise können sich zwischenzeitlich auf der Seite des Verkäufers geändert haben. Alle Angaben ohne Gewähr.
(**) UVP: Unverbindliche Preisempfehlung

Preise inkl. MwSt., zzgl. Versandkosten
Nach oben scrollen