Referenz für den Benutzeragenten-String von Firefox
Dieses Dokument beschreibt den Benutzeragenten-String, der in Firefox 4 und später sowie in Anwendungen verwendet wird, die auf Gecko 2.0 und später basieren. Für eine Aufschlüsselung der Änderungen am String in Gecko 2.0 siehe Final User Agent string for Firefox 4 (Blogbeitrag). Siehe auch dieses Dokument zur Analyse von Benutzeragenten und diesen Hacks Blogbeitrag.
Allgemeine Form
Der UA-String von Firefox selbst ist in vier Komponenten aufgeteilt:
Mozilla/5.0 (platform; rv:gecko-version) Gecko/gecko-trail Firefox/firefox-version
-
Mozilla/5.0
ist das allgemeine Token, das angibt, dass der Browser mit Mozilla kompatibel ist, und ist heute bei fast jedem Browser üblich. -
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 gebenMobile
an; das Web ist die Plattform. Beachten Sie, dassplatform
aus mehreren durch;
-getrennten Tokens bestehen kann. Siehe unten für weitere Details und Beispiele. -
rv:gecko-version
gibt die Release-Version von Gecko an (wie17.0
). -
Gecko/gecko-trail
zeigt an, dass der Browser auf Gecko basiert. -
Auf dem Desktop ist
gecko-trail
der feste String20100101
. -
Firefox/firefox-version
gibt an, dass der Browser Firefox ist, und gibt die Version an (wie17.0
). -
Ab Firefox 10 auf mobilen Geräten ist
gecko-trail
dasselbe wiefirefox-version
.
Hinweis:
Der empfohlene Weg, um nach Gecko-basierten Browsern zu suchen (wenn Sie müssen auf die Browser-Engine und nicht auf die Feature-Erkennung achten), ist die Anwesenheit der Strings Gecko
und rv:
, da einige andere Browser ein like Gecko
-Token einschließen.
Bei anderen Produkten, 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 appname/appversion
Mozilla/5.0 (platform; rv:gecko-version) Gecko/gecko-trail Firefox/firefox-version appname/appversion
appname/appversion
gibt den Anwendungsnamen und die Version an. Zum Beispiel könnte diesCamino/2.1.1
oderSeaMonkey/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
wird im Allgemeinen die gleichwertige Firefox-Version darstellen, die der angegebenen Gecko-Version entspricht. Einige Gecko-basierte Browser können sich entscheiden, dieses Token nicht zu verwenden; aus diesem Grund sollten Sniffer nach Gecko und nicht nach Firefox suchen!
Indikatoren für Handy und Tablet
Der Teil platform
des UA-Strings gibt an, ob Firefox auf einem Handy- oder Tablet-Gerät läuft. Wenn Firefox auf einem Gerät ausgeführt wird, das den Handy-Formfaktor hat, befindet sich ein Mobile;
-Token im platform
-Teil des UA-Strings. Wenn Firefox auf einem Tablet-Gerät ausgeführt wird, befindet sich stattdessen ein Tablet;
-Token im platform
-Teil des UA-Strings. 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 Schlussfolgerungen auf Material basierend auf diesen.
Der bevorzugte Weg, um Inhalte an einen Geräteformfaktor anzupassen, ist die Verwendung von CSS Media Queries. Wenn Sie jedoch UA-Sniffing verwenden, um Inhalte an einen Geräteformfaktor anzupassen, suchen Sie bitte nach Mobi (um Opera Mobile einzuschließen, das "Mobi" verwendet) für den Handy-Formfaktor und nehmen Sie nicht an, dass es einen Zusammenhang zwischen "Android" und dem Geräteformfaktor gibt. Auf diese Weise funktioniert Ihr Code, wenn/verwendet Firefox andere Handy/Tablet-Betriebssysteme oder Android für Laptops einsetzt. Verwenden Sie auch die Touch-Erkennung, um Touch-Geräte zu finden, anstatt nach "Mobi" oder "Tablet" zu suchen, da es Touch-Geräte geben kann, die keine Tablets sind.
Hinweis: Firefox OS-Geräte identifizieren sich ohne jeden Hinweis auf ein Betriebssystem; 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 Version von Windows NT ist (zum Beispiel Windows NT 6.1).
Windows-Version | Gecko-Benutzeragenten-String |
---|---|
Windows NT auf x86 oder aarch64 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 |
macOS
Hierbei ist x.y die Version von macOS (zum Beispiel macOS 10.15). Ab Firefox 87 begrenzt Firefox die gemeldete macOS-Versionsnummer auf 10.15, sodass macOS 11.0 Big Sur und später als „10.15“ im User-Agent-String angegeben werden. ARM-basierte Macs werden im User-Agent-String als „Intel“ gemeldet.
Mac OS X-Version | Gecko-Benutzeragenten-String |
---|---|
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 kann eine Erweiterung enthalten, die Ihren Benutzeragenten ändert. Nachfolgend sind einige gängige Beispiele aufgeführt.
Linux-Version | Gecko-Benutzeragenten-String |
---|---|
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 |
Firefox für Android
Firefox für Android enthält die Android-Version als Teil des platform-Tokens. Für eine erhöhte 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 an alle Android-Versionen ausgeliefert wird.
Formfaktor | Gecko-Benutzeragenten-String |
---|---|
Handy | 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
Ab Version 1 wird Focus von Android WebView angesteuert und verwendet das folgende Benutzeragenten-String-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>
Tablet-Versionen auf WebView spiegeln Mobile wider, enthalten jedoch kein Mobile
-Token.
Ab Version 6 können Benutzer in eine GeckoView-basierte Focus für Android-Version mit einer versteckten Voreinstellung wechseln. Diese verwendet einen GeckoView-UA-String, um die Gecko-Kompatibilität zu bewerben.
Focus-Version (Rendering-Engine) | Benutzeragenten-String |
---|---|
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 derselbe wie Focus.
Firefox für iOS
Firefox für iOS verwendet den standardmäßigen Mobile Safari UA-String, mit einem zusätzlichen FxiOS/<version>-Token auf iPod und iPhone, ähnlich wie Chrome für iOS sich identifiziert.
Formfaktor | Firefox für iOS-Benutzeragenten-String |
---|---|
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 Benutzeragenten-String identisch wie Safari. Für verschiedene Probleme im Zusammenhang mit der Nicht-Aufnahme von FxiOS
auf iOS siehe mozilla-mobile/firefox-ios#6620.
Focus für iOS
Version 7 von Focus für iOS verwendet einen Benutzeragenten-String 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 dem Gerät unterschiedlich sein.
Firefox für Fire TV
Version 3 (und wahrscheinlich früher) von Firefox für Fire TV verwendet einen Benutzeragenten-String mit folgendem 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 | Benutzeragenten-String |
---|---|
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
Ab Version 1.1 verwendet Firefox für Echo Show einen Benutzeragenten-String mit folgendem 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 | Benutzeragenten-String |
---|---|
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-Benutzeragenten-String |
---|---|
Handy | 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 Benutzeragenten-Strings
Obwohl es von Mozilla stark entmutigt wird, fügen einige Handyhersteller leider ein Token in den Benutzeragenten-String ihres Geräts ein, das die Geräte-ID repräsentiert. Falls dies der Fall ist, sieht der Firefox OS-UA-String wie der gerätespezifische String in der obigen Tabelle aus, wobei nnnn; der Herstellungscode des Geräts ist (siehe Leitlinien). Einige davon, die wir bemerkt haben, sind von der Form "NexusOne;", "ZTEOpen;" oder "Open C;" (beachten Sie, dass das Setzen eines Leerzeichens ebenfalls entmutigt wird). Diese Informationen stellen wir bereit, um Ihnen bei Ihrer Benutzeragentenerkennung zu helfen, aber Mozilla rät von der Erkennung einer Geräte-ID in Benutzeragenten-Strings ab.
Hier ist ein JavaScript-Regulärer-Ausdruck, der alle Mobilgeräte erkennt, einschließlich Geräte mit einer Geräte-ID in ihrem Benutzeragenten-String:
/mobi/i;
Das i
macht es Groß-/Kleinschreibung unsensitiv, und mobi
trifft auf alle mobilen Browser zu.
Versionsnummer von Firefox OS
Obwohl die Versionsnummer für Firefox OS nicht im Benutzeragenten-String enthalten ist, ist es möglich, Versionsinformationen aus der Gecko-Versionsnummer im Benutzeragenten-String abzuleiten.
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 leicht, die Entsprechungen zu finden, indem man sich die Mercurial-Repository-Namen ansieht: Repositories, die mit mozilla-b2g
beginnen, sind die Release-Repositories für Firefox OS und haben sowohl Firefox OS- als auch Gecko-Versionen in ihren Namen.
Firefox OS hat eine vierstellige Versionsnummer: X.X.X.Y
. Die ersten zwei Ziffern gehören zum Mozilla-Produktteam und bezeichnen Versionen mit neuen Funktionen (z. B.: v1.1, 1.2, usw.). Die dritte Ziffer wird mit regulären Versions-Tags (etwa alle 6 Wochen) für Sicherheitsupdates inkrementiert, und die vierte gehört dem OEM.