User-Agent Strings @ mozilla
Status of this document
This is a major revision of the original,
obsolete, user-agent string proposal. See the discussions on
netscape.public.mozilla.seamonkey and
netscape.public.mozilla.netlib for background information.
This document is
the official Mozilla user-agent string specification.
However, the following issues are under review and may be revised in
the near future:
- The requirement for a three-digit
Minor
version number
has not yet been tested on the web because there has not yet been a
"point release" of Mozilla. Thus there is a chance that this may need
to be changed. - There is concern that the attempt to separate
Platform
andOS-or-CPU
on Windows and Macintosh is not backwards
compatible and the user-agent strings should return to their old-fashioned
form. - There is concern
that giving the operating system version on Windows reveals too much
information about a system (such as potential security holes). - There is concern
that revealing localization information is a violation of privacy.
Goals
The original goals:- Obey the standard described in RFC 1945 and RFC 2068.
- Don't break existing web servers.
- Don't break existing log-file analysis software or user-agent parsing code.
- Keep the User-Agent string reasonably short.
- Use a consistent, obvious, and easy-to-parse format.
- Provide date-based version information.
- Address the issue of version modifiers.
- Provide a way for applications that contain Mozilla
technology (i.e. Gecko) but are not Mozilla to identify themselves
Proposal
For browsers based on Mozilla, the user-agent string shallfollow the format:
MozillaProductToken (MozillaComment) GeckoProductToken
*(VendorProductToken|VendorComment)
Applications that embed the Gecko layout engine shall have user-agent strings
that follow the format:
ApplicationProductToken (ApplicationComment) GeckoProductToken *(VendorProductToken|VendorComment)
Where:
MozillaProductToken | Mozilla/ MozillaVersion |
MozillaVersion | Major . minor |
Major | Integer indicating major release number. |
Minor | If non-zero, it shall be a three-digit, zero-filled number, i.e. 001. If zero, zero is fine.
|
MozillaComment | ( Platform ; Security ; OS-or-CPU ; Localization information ?[; PrereleaseVersion] ) *[; Optional Other Comments] ) |
Platform | Allowed values:
|
Security | Allowed values:
|
OS-or-CPU |
Values for Windows systems:
command uname -sm (also accessible as the sysname and machine fields of the utsname structure.) (Previous versions of this document said they should be the output of uname -srm, but the release field of the utsname structure was considered to reveal too much information about the system, such as potential security holes.) |
Localization Information | Language Tag as described in the standards RFC 1945 and RFC 2068. Examples: en, en-US, es, es-CO, ja, ja-JP, etc. |
PrereleaseVersion | String whose first character is [a-zA-Z]. By convention, used to indicate pre-release versions, such as beta quality software, or milestones. This should not be present in final release software. |
GeckoProductToken | Gecko/GeckoVersion
The Gecko product token allows products that embed the |
GeckoVersion | Date in the format YYYYMMDD. For official Mozilla builds, this will correspond to the date portion of the BuildID. For branded versions of Mozilla, the GeckoVersion should correspond to the date the code was pulled from mozilla.org, and may not necessarily correspond to the date portion of the generated BuildID. |
ApplicationProductToken, Application Comment | For use by applications that embed Gecko layout engine. The form of their product token and comment is not specified here, but should adhere to the HTTP standards. |
( VendorProductToken | VendorComment ) | Product tokens for applications based on Mozilla. Format and content shall be vendor-specific, but should adhere to the HTTP standards. |
* | Zero or more of the following token are allowed. |
? | Zero or one of the following token are allowed. |
Examples
A mozilla.org release Mozilla/5.001 (windows; U; NT4.0; en-us) Gecko/25250101 A branded release based on the same codebase as the browser above Mozilla/5.001 (Macintosh; N; PPC; ja) Gecko/25250101 MegaCorpBrowser/1.0 (MegaCorp, Inc.) A re-branded release Mozilla/9.876 (X11; U; Linux 2.2.12-20 i686, en) Gecko/25250101 Netscape/5.432b1 (C-MindSpring) A Gecko-based browser TinyBrowser/2.0 (TinyBrowser Comment) Gecko/20201231
original link
vireas - 11. Feb, 12:01