Cloudflare unterstützt Vary in Cache-Regeln, mit Kontrolle je Header
Cloudflare unterstützt den HTTP-Antwortheader Vary jetzt in Cache-Regeln für alle Tarife, wie das Unternehmen am 22. September mitteilte. Vary sagt einem Cache, welche Anfrage-Header die Antwort für eine URL verändern können - Sprache, Bildformat, Kompression -, damit ein Client keine Antwort erhält, die für einen anderen gedacht war. Die Funktion lässt den Ursprungsserver weiter erklären, was variieren darf, während der Kunde entscheidet, wie viel dieser Variation der Cache als bedeutsam behandeln soll.
Der Beitrag erklärt, warum das schwierig ist. Vary sagt, welche Header zählen können, nicht welche Unterschiede darin zählen. Ein Server, der nur Englisch, Französisch und Deutsch ausliefert, bildet womöglich Tausende verschiedener Accept-Language-Werte auf drei Antworten ab, doch ein Cache, der Rohwerte vergleicht, kann nicht annehmen, dass zwei verschiedene Header gleichwertig sind; identische Antworten verteilen sich so auf viele selten genutzte Einträge. Bei mehreren variierenden Headern multiplizieren sich die Kombinationen. Laut Cloudflare ergab eine Analyse von mehr als 120 Millionen Antworten von fast 50.000 populären Websites, dass knapp 3.000 nach vier oder mehr Feldern variieren, manche nach 10, 23 oder sogar 47.
Im neuen Entwurf nennt der Ursprungsserver per Vary die relevanten Header, und eine Cache-Regel wählt je Header eine von drei Aktionen: bekannte Aushandlungs-Header wie Accept und Accept-Language normalisieren, damit gleichwertige Anfragen einen Eintrag teilen; exakte Werte durchreichen, wenn kleine Unterschiede zählen; oder den Cache umgehen, wenn die Variation zu unvorhersehbar ist. Liefert der Server kein Vary, wird normal gecacht.

Was das bedeutet
Inhaltsaushandlung erzwang immer eine Wahl zwischen Korrektheit und Cache-Effizienz: Vary wörtlich nehmen und den Cache zersplittern oder es ignorieren und riskieren, einem API-Client HTML zu liefern. Die Frage "welche Unterschiede zählen" in die Konfiguration neben die Erklärung des Servers zu verlagern, ist eine sauberere Trennung, als die Aushandlungslogik in eigenen Cache-Schlüsseln oder Workers nachzubauen.
Für Betreiber ist der Beitrag zugleich eine Prüfliste. Jeder in Vary genannte Header vervielfacht die Cache-Varianten, und Header wie User-Agent oder Cookies können einen Cache korrekt, aber dauerhaft kalt machen. Vor dem Einschalten lohnt es, zu prüfen, wonach der eigene Server tatsächlich variiert.