Referenz zum Benutzeragentenstring von Firefox

Dieses Dokument beschreibt den Benutzeragentenstring, der in Firefox 4 und später sowie in Anwendungen, die auf Gecko 2.0 und später basieren, verwendet wird. Für eine Aufschlüsselung der Änderungen am String in Gecko 2.0 siehe Final User Agent string for Firefox 4 (Blogpost). Siehe auch das Dokument über Benutzeragentenerkennung und diesen Hacks-Blogpost.

Allgemeine Form

Der Benutzeragentenstring von Firefox selbst wird in vier Komponenten unterteilt:

Mozilla/5.0 (platform; rv:gecko-version) Gecko/gecko-trail Firefox/firefox-version

  • Mozilla/5.0 ist das allgemeine Token, das anzeigt, dass der Browser mit Mozilla kompatibel ist und ist heute in fast jedem Browser enthalten.

  • platform beschreibt die native Plattform, auf der der Browser läuft (z. B. Windows, Mac, Linux oder Android) und ob es sich um ein Mobiltelefon handelt. Firefox-OS-Telefone geben Mobile an; das Web ist die Plattform. Beachten Sie, dass platform aus mehreren durch ; getrennten Tokens bestehen kann. Weitere Details und Beispiele finden Sie weiter unten.

  • rv:gecko-version zeigt die Versionsnummer der Gecko-Version (zum Beispiel 17.0).

  • Gecko/gecko-trail gibt an, dass der Browser auf Gecko basiert.

  • Auf dem Desktop ist gecko-trail der feste String 20100101.

  • Firefox/firefox-version gibt an, dass der Browser Firefox ist, und liefert die Version (z. B. 17.0).

  • Ab Firefox 10 auf Mobilgeräten ist gecko-trail identisch mit firefox-version.

Hinweis: Die empfohlene Methode, um auf Gecko-basierte Browser zu erkennen (wenn Sie müssen nach der Browser-Engine suchen, anstatt Feature-Detection zu verwenden), ist das Vorhandensein der Gecko und rv: Strings, da einige andere Browser ein like Gecko Token enthalten.

Für andere Produkte, die auf Gecko basieren, kann der String eine von zwei Formen annehmen, wobei die Tokens die gleiche Bedeutung haben, außer den unten genannten:

Mozilla/5.0 (platform; rv:gecko-version) Gecko/gecko-trail app-name/app-version Mozilla/5.0 (platform; rv:gecko-version) Gecko/gecko-trail Firefox/firefox-version app-name/app-version

  • app-name/app-version gibt den Anwendungsnamen und die Version an. Zum Beispiel könnte dies Camino/2.1.1 oder SeaMonkey/2.7.1 sein.
  • Firefox/firefox-version ist ein optionales Kompatibilitätstoken, das einige Gecko-basierte Browser einfügen können, um maximale Kompatibilität mit Websites zu erreichen, die Firefox erwarten. firefox-version stellt im Allgemeinen die gleichwertige Firefox-Version dar, die der angegebenen Gecko-Version entspricht. Einige Gecko-basierte Browser entscheiden sich möglicherweise nicht, dieses Token zu verwenden; aus diesem Grund sollten Erkennungsmechanismen auf Gecko achten — nicht auf Firefox!

Mobile und Tablet-Indikatoren

Der platform-Teil des Benutzeragentenstrings zeigt an, ob Firefox auf einem Telefon- oder Tabletgerät läuft. Wenn Firefox auf einem Gerät mit Telefonfaktor läuft, gibt es ein Mobile; Token im platform-Teil des Benutzeragentenstrings. Wenn Firefox auf einem Tabletgerät läuft, gibt es stattdessen ein Tablet; Token im platform-Teil des Benutzeragentenstrings. Zum Beispiel:

Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0
Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0

Hinweis: Die Versionsnummern sind nicht relevant. Vermeiden Sie, Material darauf zu basieren.

Der bevorzugte Weg, um Inhalte auf ein Geräteformat zu richten, ist die Verwendung von CSS-Media-Queries. Wenn Sie jedoch Benutzeragentenerkennung verwenden, um Inhalte auf ein Geräteformat zu richten, suchen Sie bitte nach Mobi (um Opera Mobile einzuschließen, das "Mobi" verwendet) für den Telefonfaktor und nehmen Sie nicht an, dass es eine Korrelation zwischen "Android" und dem Gerätefaktor gibt. Auf diese Weise wird Ihr Code funktionieren, wenn/wenn Firefox auf anderen Telefon-/Tablet-Betriebssystemen ausgeliefert wird oder Android für Laptops verwendet wird. Verwenden Sie auch eine Berührungserkennung, um Touchgeräte zu finden, anstatt nach "Mobi" oder "Tablet" zu suchen, da es Touchgeräte geben kann, die keine Tablets sind.

Hinweis: Firefox-OS-Geräte identifizieren sich ohne Betriebssystemangabe; zum Beispiel: "Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0". Das Web ist die Plattform.

Windows

Windows-Benutzeragenten haben die folgenden Variationen, wobei x.y die Windows-NT-Version ist (z. B. Windows NT 6.1).

Windows-Version Gecko-Benutzeragentenstring
Windows NT auf x86 CPU Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0
Windows NT auf x64 CPU Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0

Hinweis: Eine aarch64-CPU wird als x86_64 unter Windows 11 und als x86 unter Windows 10 gemeldet (da x64-Emulation nicht unterstützt wird). Siehe Bugzilla #1763310.

macOS

Hierbei ist x.y die Version von macOS (zum Beispiel macOS 10.15). Beginnend mit Firefox 87 begrenzt Firefox die gemeldete macOS-Versionsnummer auf 10.15, sodass macOS 11.0 Big Sur und spätere als "10.15" im Benutzeragentenstring angezeigt werden. ARM-basierte Macs werden als "Intel" im Benutzeragentenstring angezeigt.

Mac OS X-Version Gecko-Benutzeragentenstring
Mac OS X auf x86, x86_64 oder aarch64 Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0
Mac OS X auf PowerPC Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0

Linux

Linux ist eine vielfältigere Plattform. Ihre Linux-Distribution könnte eine Erweiterung enthalten, die Ihren Benutzeragenten verändert. Einige gängige Beispiele sind unten aufgeführt.

Linux-Version Gecko-Benutzeragentenstring
Linux-Desktop auf i686 CPU Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0
Linux-Desktop auf x86_64 CPU Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0

Hinweis: In Firefox 127.0 und später wird 32-Bit-x86 nun als x86_64 im Benutzeragentenstring von Firefox sowie in navigator.platform und navigator.oscpu gemeldet (siehe Firefox 127.0 Release Notes).

Firefox für Android

Firefox für Android enthält die Android-Version als Teil des platform-Tokens. Für eine verbesserte Interoperabilität wird, wenn der Browser auf einer Version unter 4 läuft, 4.4 gemeldet. Android-Versionen 4 und höher melden die Version genau. Beachten Sie, dass das gleiche Gecko — mit den gleichen Fähigkeiten — für alle Android-Versionen ausgeliefert wird.

Formfaktor Gecko-Benutzeragentenstring
Telefon Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0
Tablet Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0

Focus für Android

Seit Version 1 wird Focus von Android WebView betrieben und verwendet das folgende Benutzeragentenstring-Format:

Mozilla/5.0 (Linux; <Android Version> <Build Tag etc.>) AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Version/4.0 Focus/<focus version> Chrome/<Chrome Rev> Mobile Safari/<WebKit Rev>

Die Tablet-Versionen auf WebView spiegeln Mobile wider, enthalten jedoch kein Mobile-Token.

Ab Version 6 können Nutzer sich entscheiden, ein GeckoView-basiertes Focus für Android mit einer versteckten Einstellung zu verwenden: Es verwendet einen GeckoView-Benutzeragentenstring, um Gecko-Kompatibilität zu bewerben.

Focus-Version (Rendering-Engine) Benutzeragentenstring
1.0 (WebView Mobile) Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Mobile Safari/537.36
1.0 (WebView Tablet) Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Safari/537.36
6.0 (GeckoView) Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0

Der Klar-Benutzeragent ist identisch mit Focus.

Firefox für iOS

Firefox für iOS verwendet den Standard-Mobile-Safari-Benutzeragentenstring mit einem zusätzlichen FxiOS/<version>-Token auf iPod und iPhone, ähnlich wie Chrome für iOS sich selbst identifiziert.

Formfaktor Firefox für iOS Benutzeragentenstring
iPod Mozilla/5.0 (iPod touch; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4
iPhone Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4
iPad Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15

Auf dem iPad erscheint der Benutzeragentenstring identisch mit Safari. Für verschiedene Probleme im Zusammenhang mit der Nichtaufnahme von FxiOS auf iOS siehe mozilla-mobile/firefox-ios#6620.

Focus für iOS

Version 7 von Focus für iOS verwendet einen Benutzeragentenstring mit dem folgenden Format:

Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/7.0.4 Mobile/16B91 Safari/605.1.15

Hinweis: Dieser Benutzeragent wurde von einem iPhone-XR-Simulator abgerufen und kann auf Geräten anders sein.

Firefox für Fire TV

Version 3 (und wahrscheinlich frühere) von Firefox für Fire TV verwenden einen Benutzeragentenstring mit dem folgenden Format:

Mozilla/5.0 (Linux; <Android version>) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/<firefox-version> Chrome/<Chrome Rev> Safari/<WebKit Rev>
Firefox TV-Version Benutzeragentenstring
v3.0 Mozilla/5.0 (Linux; Android 7.1.2) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/3.0 Chrome/59.0.3017.125 Safari/537.36

Firefox für Echo Show

Seit Version 1.1 verwendet Firefox für Echo Show einen Benutzeragentenstring mit dem folgenden Format:

Mozilla/5.0 (Linux; <Android version>) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/<firefox-version> Chrome/<Chrome Rev> Safari/<WebKit Rev>
Firefox für Echo Show-Version Benutzeragentenstring
v1.1 Mozilla/5.0 (Linux; Android 5.1.1) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.1 Chrome/59.0.3017.125 Safari/537.36

Firefox OS

Formfaktor Gecko-Benutzeragentenstring
Telefon Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0
Tablet Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0
TV Mozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0
Gerätespezifisch Mozilla/5.0 (Mobile; nnnn; rv:26.0) Gecko/26.0 Firefox/26.0

Gerätespezifische Benutzeragentenstrings

Obwohl es von Mozilla dringend abgeraten wird, fügen einige Gerätehersteller leider ein Token in den Benutzeragentenstring ihres Geräts ein, das die Geräte-ID darstellt. In diesem Fall sieht der Firefox OS-Benutzeragentenstring wie der gerätespezifische String in der obigen Tabelle aus, wobei nnnn; der Herstellercode für das Gerät ist (siehe Richtlinien). Einige davon, die uns aufgefallen sind, haben die Form "NexusOne;", "ZTEOpen;" oder "Open C;" (beachten Sie, dass das Setzen von Leerzeichen ebenfalls nicht empfohlen wird). Wir stellen diese Informationen zur Unterstützung Ihrer Benutzeragentenerkennungslogik zur Verfügung, aber Mozilla rät von der Erkennung einer Geräte-ID in Benutzeragentenstrings ab.

Hier ist ein JavaScript-Regulärer Ausdruck, der alle Mobilgeräte erkennt, einschließlich Geräte mit einer Geräte-ID im Benutzeragentenstring:

js
/mobi/i;

Das i macht es case-insensitive und mobi erkennt alle mobilen Browser.

Firefox OS-Versionsnummer

Obwohl die Versionsnummer für Firefox OS nicht im Benutzeragentenstring enthalten ist, ist es möglich, Versionsinformationen aus der in dem Benutzeragentenstring enthaltenen Gecko-Versionsnummer zu schließen.

Firefox OS-Versionsnummer Gecko-Versionsnummer
1.0.1 18.0
1.1 18.1
1.2 26.0
1.3 28.0
1.4 30.0
2.0 32.0
2.1 34.0
2.2 37
2.5 44

Hinweis: Es ist einfach, die Übereinstimmungen zu finden, indem man sich die Mercurial-Repositorienamen ansieht: Repositorien, die mit mozilla-b2g beginnen, sind die Release-Repositorien für Firefox OS und enthalten sowohl Firefox-OS- als auch Gecko-Versionen in ihren Namen.

Firefox OS hat eine vierstellige Versionsnummer: X.X.X.Y. Die ersten beiden Ziffern gehören zum Mozilla-Produktionsteam und bezeichnen Versionen mit neuen Funktionen (z. B.: v1.1, 1.2 usw.). Die dritte Ziffer wird mit regelmäßigen Versionstags (ca. alle 6 Wochen) für Sicherheitsupdates erhöht, und die vierte gehört dem OEM.

Siehe auch