Firefox user agent string reference
Tài liệu này mô tả chuỗi tác nhân người dùng được sử dụng trong Firefox 4 và các ứng dụng sau dựa trên Gecko 2.0 và sau đó. Để phân tích các thay đổi trong chuỗi trong Gecko 2.0, xem Final User Agent string for Firefox 4 (bài đăng blog). Xem thêm tài liệu này về user agent sniffing và bài đăng blog Hacks.
Dạng chung
Chuỗi UA của bản thân Firefox được chia thành bốn thành phần:
Mozilla/5.0 (platform; rv:gecko-version) Gecko/gecko-trail Firefox/firefox-version
-
Mozilla/5.0là token chung cho biết trình duyệt tương thích Mozilla, và phổ biến với hầu hết mọi trình duyệt ngày nay. -
platformmô tả nền tảng gốc mà trình duyệt đang chạy (ví dụ Windows, Mac, Linux hoặc Android), và liệu có phải điện thoại di động hay không. Điện thoại Firefox OS nóiMobile; web là nền tảng. Lưu ý rằngplatformcó thể gồm nhiều token phân cách bằng;. Xem bên dưới để biết thêm chi tiết và ví dụ. -
rv:gecko-versioncho biết phiên bản phát hành của Gecko (chẳng hạn như17.0). -
Gecko/gecko-trailcho biết rằng trình duyệt dựa trên Gecko. -
Trên máy tính,
gecko-traillà chuỗi cố định20100101. -
Firefox/firefox-versioncho biết trình duyệt là Firefox, và cung cấp phiên bản (chẳng hạn như17.0). -
Từ Firefox 10 trên di động,
gecko-trailgiống nhưfirefox-version.
Note:
Cách được khuyến nghị để nhận diện các trình duyệt dựa trên Gecko (nếu bạn phải nhận diện engine trình duyệt thay vì sử dụng phát hiện tính năng) là bằng sự hiện diện của chuỗi Gecko và rv:, vì một số trình duyệt khác bao gồm token like Gecko.
Đối với các sản phẩm khác dựa trên Gecko, chuỗi có thể có một trong hai dạng, trong đó các token có cùng ý nghĩa ngoại trừ những gì được ghi chú bên dưới:
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-versioncho biết tên ứng dụng và phiên bản. Ví dụ, đây có thể làCamino/2.1.1, hoặcSeaMonkey/2.7.1.Firefox/firefox-versionlà token tương thích tùy chọn mà một số trình duyệt dựa trên Gecko có thể chọn để đưa vào, để đạt được khả năng tương thích tối đa với các trang web mong đợi Firefox.firefox-versionthường đại diện cho bản phát hành Firefox tương đương với phiên bản Gecko đã cho. Một số trình duyệt dựa trên Gecko có thể không sử dụng token này; vì lý do này, người nhận diện nên tìm Gecko — không phải Firefox!
Chỉ thị Mobile và Tablet
Phần platform của chuỗi UA cho biết liệu Firefox có đang chạy trên thiết bị kích thước điện thoại hay tablet hay không. Khi Firefox chạy trên thiết bị có form factor điện thoại, có token Mobile; trong phần platform của chuỗi UA. Khi Firefox chạy trên thiết bị tablet, có token Tablet; trong phần platform của chuỗi UA thay thế. Ví dụ:
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
Note: Số phiên bản không liên quan. Tránh suy luận tài liệu dựa trên những điều này.
Cách ưu tiên để nhắm mục tiêu nội dung vào form factor thiết bị là sử dụng CSS Media Queries. Tuy nhiên, nếu bạn sử dụng UA sniffing để nhắm mục tiêu nội dung vào form factor thiết bị, hãy tìm Mobi (để bao gồm Opera Mobile, sử dụng "Mobi") cho form factor điện thoại và không giả định bất kỳ tương quan nào giữa "Android" và form factor thiết bị. Theo cách này, mã của bạn sẽ hoạt động nếu/khi Firefox được chuyển đến các hệ điều hành điện thoại/tablet khác hoặc Android được sử dụng cho laptop. Ngoài ra, hãy sử dụng phát hiện cảm ứng để tìm thiết bị cảm ứng thay vì tìm "Mobi" hoặc "Tablet", vì có thể có thiết bị cảm ứng không phải tablet.
Note: Các thiết bị Firefox OS tự xác định mà không có chỉ thị hệ điều hành; ví dụ: "Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0". Web là nền tảng.
Windows
Các tác nhân người dùng Windows có các biến thể sau, trong đó x.y là phiên bản Windows NT (ví dụ, Windows NT 6.1).
| Phiên bản Windows | Chuỗi tác nhân người dùng Gecko |
|---|---|
| Windows NT trên CPU x86 | Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0 |
| Windows NT trên CPU x64 | Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0 |
Note: CPU aarch64 được báo cáo là x86_64 trên Windows 11, và x86 trên Windows 10 (vì nó không hỗ trợ mô phỏng x64). Xem Bugzilla #1763310.
macOS
Ở đây, x.y là phiên bản của macOS (ví dụ, macOS 10.15). Bắt đầu từ Firefox 87, Firefox giới hạn số phiên bản macOS được báo cáo là 10.15, vì vậy macOS 11.0 Big Sur và sau đó sẽ được báo cáo là "10.15" trong chuỗi User-Agent. Các Mac dựa trên ARM sẽ được báo cáo là "Intel" trong chuỗi User-Agent.
| Phiên bản Mac OS X | Chuỗi tác nhân người dùng Gecko |
|---|---|
| Mac OS X trên x86, x86_64, hoặc aarch64 | Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0 |
| Mac OS X trên PowerPC | Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0 |
Linux
Linux là nền tảng đa dạng hơn. Bản phân phối Linux của bạn có thể bao gồm phần mở rộng thay đổi user-agent của bạn. Một vài ví dụ phổ biến được đưa ra bên dưới.
| Phiên bản Linux | Chuỗi tác nhân người dùng Gecko |
|---|---|
| Linux desktop trên CPU i686 | Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 |
| Linux desktop trên CPU x86_64 | Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 |
Note:
Trong Firefox 127.0 và sau đó, x86 32-bit bây giờ sẽ được báo cáo là x86_64 trong chuỗi User-Agent của Firefox, navigator.platform, và navigator.oscpu (xem Firefox 127.0 Release Notes).
Firefox cho Android
Firefox cho Android chứa phiên bản Android như một phần của token platform. Để tăng khả năng tương thích, nếu trình duyệt đang chạy trên phiên bản thấp hơn 4, nó sẽ báo cáo 4.4. Các phiên bản Android 4 trở lên báo cáo chính xác phiên bản. Lưu ý rằng Gecko giống nhau — với cùng khả năng — được chuyển đến tất cả các phiên bản Android.
| Form factor | Chuỗi tác nhân người dùng Gecko |
|---|---|
| Điện thoại | 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 cho Android
Từ phiên bản 1, Focus được hỗ trợ bởi Android WebView và sử dụng định dạng chuỗi tác nhân người dùng sau:
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>
Các phiên bản tablet trên WebView phản chiếu di động, nhưng không chứa token Mobile.
Bắt đầu từ Phiên bản 6, người dùng có thể chọn sử dụng Focus dựa trên GeckoView cho Android với tùy chọn ẩn: nó sử dụng chuỗi UA GeckoView để quảng cáo khả năng tương thích Gecko.
| Phiên bản Focus (Rendering Engine) | Chuỗi User Agent |
|---|---|
| 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 |
Tác nhân người dùng Klar giống như Focus.
Firefox cho iOS
Firefox cho iOS sử dụng chuỗi UA Mobile Safari mặc định, với token bổ sung FxiOS/<version> trên iPod và iPhone, tương tự như cách Chrome cho iOS tự xác định.
| Form factor | Chuỗi tác nhân người dùng Firefox cho iOS |
|---|---|
| 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 |
Trên iPad, chuỗi tác nhân người dùng xuất hiện giống hệt như Safari. Để biết các vấn đề liên quan đến việc không bao gồm FxiOS trên iOS, xem mozilla-mobile/firefox-ios#6620.
Focus cho iOS
Phiên bản 7 của Focus cho iOS sử dụng chuỗi tác nhân người dùng với định dạng sau:
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
Lưu ý: tác nhân người dùng này được lấy từ simulator iPhone XR và có thể khác trên thiết bị thực tế.
Firefox cho Fire TV
Phiên bản 3 (và có thể trước đó) của Firefox cho Fire TV sử dụng chuỗi tác nhân người dùng với định dạng sau:
Mozilla/5.0 (Linux; <Android version>) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/<firefox-version> Chrome/<Chrome Rev> Safari/<WebKit Rev>
| Phiên bản Firefox TV | Chuỗi User Agent |
|---|---|
| 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 cho Echo Show
Từ phiên bản 1.1, Firefox cho Echo Show sử dụng chuỗi tác nhân người dùng với định dạng sau:
Mozilla/5.0 (Linux; <Android version>) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/<firefox-version> Chrome/<Chrome Rev> Safari/<WebKit Rev>
| Phiên bản Firefox cho Echo Show | Chuỗi tác nhân người dùng |
|---|---|
| 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
| Form factor | Chuỗi tác nhân người dùng Gecko |
|---|---|
| Điện thoại | 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 |
| Dành riêng thiết bị | Mozilla/5.0 (Mobile; nnnn; rv:26.0) Gecko/26.0 Firefox/26.0 |
Chuỗi tác nhân người dùng dành riêng thiết bị
Mặc dù Mozilla khuyến nghị mạnh mẽ không nên làm vậy, một số nhà sản xuất điện thoại đáng tiếc bao gồm token trong chuỗi UA của thiết bị đại diện cho ID thiết bị của họ. Nếu đây là trường hợp, chuỗi UA Firefox OS sẽ trông giống chuỗi dành riêng thiết bị trong bảng trên, trong đó nnnn; là mã của nhà sản xuất cho thiết bị (xem Hướng dẫn). Một số trong số đó chúng tôi đã nhận thấy có dạng "NexusOne;", "ZTEOpen;", hoặc "Open C;" (lưu ý rằng việc đặt khoảng trắng cũng không được khuyến khích). Chúng tôi cung cấp thông tin này để hỗ trợ logic phát hiện UA của bạn, nhưng Mozilla không khuyến khích phát hiện ID thiết bị trong chuỗi UA.
Đây là biểu thức chính quy JavaScript sẽ phát hiện tất cả thiết bị di động, bao gồm cả thiết bị có ID thiết bị trong chuỗi UA của chúng:
/mobi/i;
i làm cho nó không phân biệt chữ hoa chữ thường, và mobi khớp với tất cả trình duyệt di động.
Số phiên bản Firefox OS
Mặc dù số phiên bản của Firefox OS không được bao gồm trong chuỗi UA, nhưng có thể suy ra thông tin phiên bản từ số phiên bản Gecko có trong chuỗi UA.
| Số phiên bản Firefox OS | Số phiên bản Gecko |
|---|---|
| 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 |
Note:
Dễ dàng tìm thấy sự tương ứng bằng cách xem tên kho lưu trữ Mercurial: các kho lưu trữ bắt đầu bằng mozilla-b2g là các kho lưu trữ phát hành cho Firefox OS, và có cả phiên bản Firefox OS và Gecko trong tên của chúng.
Firefox OS có số phiên bản bốn chữ số: X.X.X.Y. Hai chữ số đầu thuộc về nhóm sản phẩm Mozilla và biểu thị các phiên bản có tính năng mới (ví dụ: v1.1, 1.2, v.v.). Chữ số thứ ba được tăng lên với các tag phiên bản thường xuyên (khoảng 6 tuần một lần) cho các bản cập nhật bảo mật, và chữ số thứ tư thuộc về OEM.
Xem thêm
- Khuyến nghị về nhận diện chuỗi UA để hỗ trợ đa trình duyệt
navigator.userAgent