HTTP Vary Header

Der HTTP-Header Vary ist ein Response-Header, der Cache-Mechanismen anweist, welche Request-Header beim Erstellen von Cache-Keys zu berücksichtigen sind. CDNs und Browser-Caches verwenden Vary für korrekte Content-Negotiation-basierte Cache-Verwaltung.

Typ

Response-Header

Syntax

Der Header listet Request-Header-Namen für Cache-Variance.

http
Vary: Accept-Encoding
Vary: Accept-Encoding, User-Agent

Direktiven

Die Direktiven definieren Request-Header für Cache-Schlüssel-Bildung.

header-name
Name eines Request-Headers, dessen Wert Cache-Variation auslöst. Jeder eindeutige Wert erfordert separaten Cache-Eintrag.
*
Wildcard, signalisiert dass Response von unbekannten Faktoren abhängt und nicht cachebar ist.
Accept-Encoding
Häufigste Direktive für Kompression-Variance (gzip, br, identity).
User-Agent
Unterschiedliche Responses für verschiedene Browser oder Devices.
Origin
CORS-Responses variieren basierend auf Request-Origin.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für den Vary-Header.

Beispiel 1 Kompression Variance

http
GET /styles.css HTTP/1.1
Host: example.com
Accept-Encoding: gzip, br

HTTP/1.1 200 OK
Content-Type: text/css
Content-Encoding: br
Vary: Accept-Encoding
Cache-Control: public, max-age=31536000

[Brotli-komprimiertes CSS]

CDN cached Brotli- und gzip-Versionen separat basierend auf Client Accept-Encoding.

Beispiel 2 CORS mit Origin Variance

http
GET /api/data HTTP/1.1
Host: api.example.com
Origin: https://app.example.com

HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: https://app.example.com
Vary: Origin
Cache-Control: max-age=60

{"data": [...]}

API-Response variiert basierend auf Origin, Cache speichert separate Einträge pro Origin.

Beispiel 3 Multi-Device Variance

http
GET / HTTP/1.1
Host: responsive.example.com
User-Agent: Mozilla/5.0 (iPhone...)

HTTP/1.1 200 OK
Content-Type: text/html
Vary: User-Agent, Accept-Encoding
Cache-Control: public, max-age=3600

<!DOCTYPE html>...Mobile HTML...

Responsive Website cached separate Versionen für Desktop/Mobile basierend auf User-Agent.

CDN Cache Variance Flow

Vary Header Cache-Verwaltung Ablauf

Vorteile für die Systemarchitektur

  • Korrekte Content-Negotiation: CDNs liefern optimale Response-Variante für jeden Client
  • Kompression-Optimierung: Brotli für moderne Browser, gzip für Legacy-Clients ohne Cache-Konflikte
  • CORS Cache-Safety: Origin-basierte Variance verhindert Cross-Origin Cache-Poisoning

Spezifikation

RFC 9110, Section 12.5.5 – HTTP Semantics https://www.rfc-editor.org/rfc/rfc9110.html#name-vary

Weitere Spezifikationen

Accept Header, Cache-Control Header, Accept-Encoding Header