Firefox User-Agent-String-Referenz
Dieses Dokument beschreibt die User-Agent-String, die in Firefox 4 und später sowie in Anwendungen auf Basis von Gecko 2.0 und später verwendet wird. Eine Aufschlüsselung der Änderungen am String in Gecko 2.0 finden Sie im Endgültigen User-Agent-String für Firefox 4 (Blog-Beitrag). Siehe auch dieses Dokument über User-Agent-Sniffing und diesen Hacks-Blogbeitrag.
Allgemeine Form
Der UA-String von Firefox selbst ist 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 besagt, 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 oder nicht. 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 Versionsnummer des Gecko-Releases an (zum Beispiel17.0
). -
Gecko/gecko-trail
zeigt an, dass der Browser auf Gecko basiert. -
Auf Desktops ist
gecko-trail
die feste Zeichenfolge20100101
. -
Firefox/firefox-version
gibt an, dass der Browser Firefox ist und bietet die Version an (zum Beispiel17.0
). -
Ab Firefox 10 auf mobilen Geräten ist
gecko-trail
identisch mitfirefox-version
.
Hinweis: Der empfohlene Weg zur Erkennung von Gecko-basierten Browsern (wenn Sie müssen den Browser-Engine schnüffeln, anstatt eine Funktionsdetektion zu verwenden) ist durch das Vorhandensein der Zeichenfolgen Gecko
und rv:
, da einige andere Browser ein like Gecko
-Token enthalten.
Für andere auf Gecko basierende Produkte kann der String eine von zwei Formen annehmen, wobei die Tokens die gleiche Bedeutung haben, außer den unten angegebenen:
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. Dies könnte zum BeispielCamino/2.1.1
oderSeaMonkey/2.7.1
sein.Firefox/firefox-version
ist ein optionales Kompatibilitätstoken, das einige Gecko-basierte Browser eventuell integrieren, um maximale Kompatibilität mit Websites zu erreichen, die Firefox erwarten.firefox-version
wird im Allgemeinen die entsprechende Firefox-Version für die angegebene Gecko-Version darstellen. Einige Gecko-basierte Browser verzichten möglicherweise auf die Verwendung dieses Tokens; aus diesem Grund sollten Sniffer nach Gecko — nicht nach Firefox — suchen!
Mobil- und Tablet-Indikatoren
Der platform
-Teil des UA-Strings gibt an, ob Firefox auf einem Gerät in Telefon- oder Tablet-Größe läuft. Wenn Firefox auf einem Gerät läuft, das die Telefonform hat, gibt es ein Mobile;
-Token im platform
-Teil des UA-Strings. Wenn Firefox auf einem Tablet-Gerät läuft, gibt es 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 das Ableiten von Material auf Grundlage dieser.
Der bevorzugte Weg, um Inhalte auf eine Geräteform abzustimmen, ist die Verwendung von CSS Media Queries. Wenn Sie jedoch UA-Sniffing verwenden, um Inhalte auf eine Geräteform abzustimmen, suchen Sie bitte nach Mobi (um Opera Mobile einzuschließen, das "Mobi" verwendet) für die Telefonform und nehmen Sie keine Korrelation zwischen "Android" und der Geräteform an. Auf diese Weise wird Ihr Code funktionieren, wenn/als Firefox auf anderen Telefon-/Tablet-Betriebssystemen veröffentlicht wird oder Android auf Laptops verwendet wird. Bitte verwenden Sie auch Touch-Erkennung, um Touch-Geräte zu finden, anstatt nach "Mobi" oder "Tablet" zu suchen, da es möglicherweise Touch-Geräte gibt, die keine Tablets sind.
Hinweis: Firefox OS-Geräte identifizieren sich ohne jegliche Angabe eines Betriebssystems; zum Beispiel: "Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0". Das Web ist die Plattform.
Windows
Windows User Agents haben die folgenden Variationen, wobei x.y die Windows NT-Version ist (zum Beispiel Windows NT 6.1).
Windows-Version | Gecko-User-Agent-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-Version auf 10.15, sodass macOS 11.0 Big Sur und spätere Versionen in der User-Agent-String als "10.15" gemeldet werden. ARM-basierte Macs werden im User-Agent-String als "Intel" gemeldet.
Mac OS X-Version | Gecko-User-Agent-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 könnte eine Erweiterung enthalten, die Ihren User-Agent ändert. Einige häufige Beispiele werden unten angegeben.
Linux-Version | Gecko-User-Agent-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 höhere Interoperabilität wird, wenn der Browser auf einer Version unter 4 läuft, 4.4 gemeldet. Android-Versionen ab 4 und höher melden die Version korrekt. Beachten Sie, dass das gleiche Gecko — mit den gleichen Fähigkeiten — für alle Android-Versionen geliefert wird.
Formfaktor | Gecko-User-Agent-String |
---|---|
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
Ab Version 1 basiert Focus auf Android WebView und verwendet das folgende User-Agent-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 Geräte wider, enthalten jedoch kein Mobile
-Token.
Ab Version 6 können Nutzer sich für die Verwendung einer GeckoView-basierten Focus für Android mit einer versteckten Einstellung entscheiden: Es verwendet einen GeckoView-UA-String, um Gecko-Kompatibilität zu bewerben.
Focus-Version (Rendering-Engine) | User-Agent-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-User-Agent 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-User-Agent-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 iPad erscheint der User-Agent-String identisch wie Safari. Für verschiedene Probleme im Zusammenhang mit dem Fehlen von FxiOS
auf iOS, siehe mozilla-mobile/firefox-ios#6620.
Focus für iOS
Version 7 von Focus für iOS verwendet einen User-Agent-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 User-Agent wurde von einem iPhone XR-Simulator abgerufen und könnte auf einem echten Gerät anders sein.
Firefox für Fire TV
Version 3 (und vermutlich frühere) von Firefox für Fire TV verwenden einen User-Agent-String 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 | User-Agent-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 User-Agent-String 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 | User-Agent-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-User-Agent-String |
---|---|
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 User-Agent-Strings
Obwohl es von Mozilla strengstens untersagt ist, fügen einige Gerätehersteller leider ein Token in den UA-String ihres Geräts ein, das ihre Geräte-ID darstellt. Falls dies der Fall ist, sieht der Firefox OS-UA-String wie der gerätespezifische String in der obigen Tabelle aus, wobei nnnn; der Herstellercode für das Gerät ist (siehe Richtlinien). Einige, die wir bemerkt haben, sind von der Form "NexusOne;", "ZTEOpen;" oder "Open C;" (beachten Sie, dass das Einfügen von Leerzeichen ebenfalls nicht empfohlen wird). Wir stellen diese Informationen bereit, um Ihnen bei Ihrer UA-Erkennungslogik zu helfen, jedoch rät Mozilla von der Erkennung einer Geräte-ID in UA-Strings ab.
Hier ist ein JavaScript-Regulärer Ausdruck, der alle mobilen Geräte erkennt, einschließlich Geräte mit einer Geräte-ID in ihrem UA-String:
/mobi/i;
Das i
macht es nicht unterscheidend zwischen Groß- und Kleinschreibung und mobi
passt zu allen mobilen Browsern.
Firefox OS-Versionsnummer
Während die Versionsnummer für Firefox OS nicht im UA-String enthalten ist, ist es möglich, Versionsinformationen aus der Gecko-Versionsnummer im UA-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 Zusammenhänge zu erkennen, indem man sich die Mercurial-Repository-Namen ansieht: Repositories, die mit mozilla-b2g
beginnen, sind die Veröffentlichungsrepositories für Firefox OS und haben sowohl die Firefox OS- als auch die Gecko-Versionen in ihren Namen.
Firefox OS hat eine vierstellige Versionsnummer: X.X.X.Y
. Die ersten beiden Ziffern werden vom Mozilla-Produktteam verwaltet und bezeichnen Versionen mit neuen Funktionen (z.B.: v1.1, 1.2, usw.). Die dritte Ziffer wird mit regulären Versionstags (ungefähr alle 6 Wochen) für Sicherheitsupdates erhöht, und die vierte gehört dem OEM.