HTTP No-Vary-Search Header

Typ

Der No-Vary-Search-Header ist ein HTTP-Response-Header, der dem Browser mitteilt, welche URL-Query-Parameter bei Cache-Lookups ignoriert werden sollen, um Cache-Hit-Raten zu erhöhen.

Syntax

Der No-Vary-Search-Header definiert eine Structured Field Dictionary mit Anweisungen, welche Query-Parameter für Cache-Entscheidungen irrelevant sind, oder ob alle Parameter ignoriert werden sollen.

http
No-Vary-Search: params=("utm_source" "utm_campaign")

Direktiven

Der No-Vary-Search-Header unterstützt mehrere Direktiven zur Kontrolle, welche Query-Parameter Cache-Varianz beeinflussen, kritisch für API-Response-Caching mit Analytics-Parametern.

params
Liste von Query-Parametern, die bei Cache-Lookups ignoriert werden sollen, typischerweise Tracking-Parameter wie utm_source oder session_id, die Response-Inhalte nicht beeinflussen.
except
Liste von Query-Parametern, die NICHT ignoriert werden sollen, wenn params auf true gesetzt ist, für Whitelisting funktionaler Parameter bei aggressivem Caching.
key-order
Boolescher Wert, der festlegt, ob die Reihenfolge der Query-Parameter bei Cache-Lookups ignoriert werden soll, nützlich für APIs mit variablen Parameter-Ordnungen.
params=?1
Kurzform zum Ignorieren ALLER Query-Parameter außer denen in der except-Liste, für maximale Cache-Wiederverwendung bei Read-Only-API-Endpunkten.

Beispiele

Die folgenden Beispiele zeigen No-Vary-Search-Konfigurationen für API-Responses mit Tracking-Parametern, CDN-Caching-Strategien und unterschiedliche Ansätze zur Cache-Key-Normalisierung.

Ignorieren von Analytics-Parametern bei API-Response-Caching

http
HTTP/1.1 200 OK
No-Vary-Search: params=("utm_source" "utm_medium" "utm_campaign" "fbclid")
Cache-Control: public, max-age=3600
Content-Type: application/json

{
  "products": [
    {
      "id": "prod-123",
      "name": "API Gateway License",
      "price": 299.00
    }
  ]
}

Ignorieren aller Parameter außer funktionaler API-Parameter

http
HTTP/1.1 200 OK
No-Vary-Search: params, except=("page" "limit" "sort")
Cache-Control: public, max-age=600
Content-Type: application/json

{
  "items": [],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 450
  }
}

Ignorieren der Parameter-Reihenfolge für CDN-Cache-Effizienz

http
HTTP/1.1 200 OK
No-Vary-Search: key-order
Cache-Control: public, max-age=1800
Vary: Accept-Encoding
Content-Type: application/json

{
  "status": "operational",
  "services": {
    "api": "healthy",
    "database": "healthy"
  }
}

Vorteile für die Systemarchitektur

  • Erhöht Cache-Hit-Raten drastisch bei API-Endpunkten mit Marketing-Tracking-Parametern
  • Reduziert Backend-Load durch Vermeidung redundanter Requests für funktional identische URLs
  • Ermöglicht aggressive Caching-Strategien ohne Tracking-Funktionalität zu beeinträchtigen
  • Vereinfacht CDN-Konfiguration durch deklarative Cache-Key-Normalisierung im Response-Header
  • Kompatibel mit bestehenden Cache-Control-Mechanismen und Vary-Header-Strategien

Spezifikation

Der No-Vary-Search-Header ist in der WICG No-Vary-Search Specification definiert und ermöglicht deklarative Cache-Key-Normalisierung für verbesserte Cache-Effizienz bei URLs mit irrelevanten Query-Parametern.

Weitere Spezifikationen

Vary Header, Cache-Control Header