HTTP Sec-CH-UA-Full-Version-List Header

Der HTTP-Header Sec-CH-UA-Full-Version-List ist ein High-Entropy Request-Header aus den User Agent Client Hints, der alle Browser Brands mit ihren vollständigen Versionsnummern übermittelt. Er ersetzt den deprecated Sec-CH-UA-Full-Version Header und folgt dem strukturierten Format von Sec-CH-UA.

Typ

Request-Header

Syntax

Der Header listet Brand Names mit Full Versions als strukturierte Liste von Quoted Strings.

http
Sec-CH-UA-Full-Version-List: "Chromium";v="120.0.6099.109", "Google Chrome";v="120.0.6099.109", "Not_A Brand";v="8.0.0.0"

Direktiven

Die Direktiven definieren alle Browser Brands mit ihren vollständigen Versionsnummern.

"Brand Name"
Quoted String mit Browsername oder Engine. Enthält echte Brands und Grease-Strings zur Verhinderung von naive String-Matching.
v
Vollständige Versionsnummer im Format Major.Minor.Build.Patch als String. Beispiel: "120.0.6099.109" statt nur Major Version "120".

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für den Sec-CH-UA-Full-Version-List-Header.

Beispiel 1 Chrome mit vollstaendigen Versionen

http
GET /support/check HTTP/1.1
Host: webapp.example.com
Sec-CH-UA-Full-Version-List: "Chromium";v="120.0.6099.109", "Google Chrome";v="120.0.6099.109", "Not_A Brand";v="8.0.0.0"

Server erhält alle Brands mit Patch-Level Versions, kann spezifische Bugs in Build 6099.109 erkennen und Workarounds aktivieren.

Beispiel 2 Edge mit Chromium Base

http
GET /download HTTP/1.1
Host: cdn.example.com
Sec-CH-UA-Full-Version-List: "Chromium";v="120.0.6099.71", "Microsoft Edge";v="120.0.2210.61", "Not=A?Brand";v="99.0.0.0"

Edge zeigt unterschiedliche Versionsnummern für Chromium-Base und Edge-Wrapper, ermöglicht präzise Compatibility-Checks für beide Komponenten.

Beispiel 3 Opt-In und Version Verification

http
HTTP/1.1 200 OK
Accept-CH: Sec-CH-UA-Full-Version-List
Vary: Sec-CH-UA-Full-Version-List

<script>
  const brands = navigator.userAgentData.brands;
  const fullVersions = await navigator.userAgentData.getHighEntropyValues(['fullVersionList']);
  console.log(fullVersions.fullVersionList);
</script>

Server fordert Full-Version-List via Accept-CH. JavaScript kann High-Entropy Values für clientseitige Feature-Detection abrufen.

Brand Version List Flow

Full Version List Client Hint Ablauf

Vorteile für die Systemarchitektur

  • Ersetzt deprecated Full-Version: Konsistentes Structured Header Format wie Sec-CH-UA statt separatem String-Header
  • Multi-Brand Awareness: Edge, Brave und Chromium-basierte Browser zeigen alle relevanten Versions für Compatibility-Matrix
  • Grease-Protected: Fake-Brands mit unrealistischen Versions verhindern fragile String-Parsing-Logic in Server-Code

Spezifikation

User-Agent Client Hints – WICG Draft https://wicg.github.io/ua-client-hints/

Weitere Spezifikationen

Sec-CH-UA Header, Accept-CH Header