Erkennen von Windows 11 mit User-Agent Clienthinweisen

Websites können zwischen Benutzern auf Windows 11 und Windows 10 unterscheiden, indem sie User-Agent Client Hints (UA-CH) verwenden. Das User-Agent Client Hints-Format wird von Browsern verwendet, um Benutzer-Agent-Informationen für Websites bereitzustellen.

Websites können die Benutzer-Agent-Informationen verwenden, die vom Browser gesendet werden, um Informationen zu erkennen, z. B.:

  • Die Browsermarke.
  • Die Browserversionsnummer.
  • Die Geräteplattform, auf der der Browser ausgeführt wird.

Es gibt zwei Ansätze für Websites, um auf Benutzer-Agent-Informationen zuzugreifen:

  • User-Agent Zeichenfolgen (Legacy).
  • User-Agent Clienthinweise (empfohlen).

Ausführliche Informationen zu diesen beiden Ansätzen finden Sie unter Erkennen von Microsoft Edge von Ihrer Website.

In Microsoft Edge (und auch in Chrome) können Websites zwischen Benutzern auf Windows 11 und Windows 10 über User-Agent Client hints (UA-CH) unterscheiden. Diese Informationen finden Sie in den folgenden UA-CH-Anforderungsheadern:

Kopfzeilenfeld Werte, die Windows 10 Werte, die Windows 11
Sec-CH-UA-Platform Windows Windows
Sec-CH-UA-Platform-Version Werte zwischen 1.0.0 und 10.0.0 13.0.0 und höher

User-Agent Zeichenfolgen werden nicht aktualisiert, um zwischen Windows 11 und Windows 10 zu unterscheiden. Es wird nicht empfohlen, User-Agent Zeichenfolgen zum Abrufen von Benutzer-Agent-Daten zu verwenden. Browser, die User-Agent Clienthinweise nicht unterstützen, können nicht zwischen Windows 11 und Windows 10 unterscheiden.

Browser, die User-Agent Clienthinweise unterstützen

Die folgende Tabelle zeigt, welche Browser die Unterscheidung zwischen Windows 11 und Windows 10 unterstützen.

Browser Unterstützt die Differenzierung über User-Agent Clienthinweise?
Microsoft Edge 94+ Ja
Chrome 95+ Ja
Opera Ja
Firefox Nein
Internet Explorer 11 Nein

Beispielcode zum Erkennen von Windows 11

Der folgende Code erkennt Windows 11:

navigator.userAgentData.getHighEntropyValues(["platformVersion"])
 .then(ua => {
   if (navigator.userAgentData.platform === "Windows") {
     const majorPlatformVersion = parseInt(ua.platformVersion.split('.')[0]);
     if (majorPlatformVersion >= 13) {
       console.log("Windows 11 or later");
      }
      else if (majorPlatformVersion > 0) {
        console.log("Windows 10");
      }
      else {
        console.log("Before Windows 10");
      }
   }
   else {
     console.log("Not running on Windows");
   }
 });

Optimieren der Erkennungsleistung mit Critical-CH

Derzeit müssen Websiteserver den Accept-CH Antwortheader an den Browserclient senden, um höhere Entropiefelder anzufordern, die Sec-CH-UA nicht standardmäßig im Header gesendet werden. Das folgende Diagramm zeigt den Browser, der Anforderungsheader an den Server sendet, einschließlich user agent: <UA string> und empfangenden Antwortheadern einschließlich Accept-CH: sec-ch-ua-platform.

Anforderungen, die nur den Accept-CH-Header verwenden.

Während dieser anfänglichen Anforderung zeichnet der Client die Accept-CH Einstellungen auf, und bei nachfolgenden Anforderungen ist standardmäßig enthalten sec-ch-ua-platform .

Um diesen Fluss weiter zu optimieren, kann der neue Critical-CH Header zusätzlich zum Accept-CH Header verwendet werden, um den Anforderungsheader sofort neu zu laden, ohne dass eine Seite neu geladen werden muss. Das folgende Diagramm zeigt den Browser, der Anforderungsheader an den Server sendet, einschließlich user agent: <UA string> und empfangenden Antwortheadern einschließlich Accept-CH: sec-ch-ua-platform und Critical-CH: sec-ch-ua-platform. Der Browser sendet dann Anforderungsheader sofort an den Server.

Anforderungen mit Critical-CH- und Accept-CH-Headern.

Ab Microsoft Edge Version 96 können Sie den neuen Critical-CH Header verwenden, um gewünschte Kopfzeilen mit hoher Entropie mit optimierter Leistung zu empfangen.

Denken Sie daran, dass Critical-CH und Accept-CH die Einstellungen beibehalten werden, bis Sitzungscookies gelöscht werden oder bis ein Benutzer Websitedaten oder Cookies für einen bestimmten Ursprung löscht. Weitere Informationen Critical-CHfinden Sie unter "Client Hint Reliability".

Erkennen bestimmter Windows Versionen

Um bestimmte Versionen von Windows zu erkennen, verwenden Sie die folgenden Werte in platformVersion User-Agent Clienthinweisen:

Version platformVersion
Win7/8/8.1 0
Win10 1507 1
Win10 1511 2
Win10 1607 3
Win10 1703 4
Win10 1709 5
Win10 1803 6
Win10 1809 7
Win10 1903 8
Win10 1909 8
Win10 2004 10
Win10 20H2 10
Win10 21H1 10
Win10 21H2 10
Win11 13+