Forum Moderators: open
There are other issues such as bots that use Mozilla/5.0 and even the Ask Jeeves spider uses Mozilla/2.0. Instead of using a normal UA that declares their spider's name and a URL to check out their bots typically get added as a version of Netscape 4.
I simply do not see the reasoning behind this. If UAs are used to do several things such as tracking market shares why would vendors do something to give us such headaches to deal with?
You can use the Mozilla number to do simple brand-independent sniffing of the client capabilities, and serve only content that that level of browser can handle. For example, Jeeves doesn't handle CSS, and they tell you that in their user-agent string.
Netscape defined rules for generating the user-agent string, and you may still be able to find that document by searching for it, but not all browser vendors followed the rules. As well, most "stats" program vendors are pretty poor at keeping their UA databases current.
For those who ask, "Who is Mozilla to tell Microsoft/Opera/etc. what to do?" the answer is that Mozilla/Netscape released the first full-featured Web browser (based on the earlier NCSA MOSAIC project), and as first to the goal, got to define some of the rules. So to this day, MS has to put "Mozilla compatible" in IE's user-agent string. I'm sure that it bugs them...
Jim
Now Mozilla is no longer owned by Netscape, so they can use whatever numbering system they like for the Mozilla Suite itself, but the core is still termed Mozilla/5.0.
All the software companies love to have 'minor point releases' and 'major version releases' -- They skip numbers, and change version numbers just because they think (maybe it's true) that they'll get more 'marketing buzz' from changing the numbers. So, yeah, none of it makes sense from a purely-technical standpoint. Maybe it does make sense from a marketing standpoint, but then marketers never had to write code to recognize all these versions and variations...
Anyway Mozilla/5.0 indicates a Netscape 6, 7, or 8 -level browser, JS, CSS, and DHTML support, etc.
I'm sure we're all enjoying the Web much more now that it's being called "Web 2.0," right? ;)
Jim
Actually, you can blame Microsoft for this. ;) It is all just legacy stuff held over from the early days of the web. "Mozilla" was the original code name for Netscape, so Mozilla/x.x relates to the version of Netscape. IE was launched as being compatible with Netscape (Mozilla) in the UA string so that scripts detected Netscape still worked for IE.
Why Mozilla/5.0? Because Gecko 1.x is what became of Netscape 5.x. When Netscape open-sourced the code to Netscape 4.x the idea was that Mozilla 1.0 (the Mozilla suite) would be the basis for the subsequent Netscape. Trouble was, as the development team decided to scrap the NN4 rendering engine and build a totally new one (Gecko), the extreme delay allowed Microsoft to take the lead with IE 5.0. Netscape were forced to use a pre-release version of Mozilla (0.92 I think) for Netscape 6.0, so-named to appear to be ahead of IE when in fact they were far behind. Despite the 6.0 branding, the core was the version 5.0: the first release since NN4.x. Firefox is still using that same but updated Gecko version 1.x so is still Netscape 5.x. Will Firefox 2.0 move to being Mozilla 6.x? Who knows, but they should do so to be consistent.
Mozilla/1.x = Netscape 1.x
Mozilla/2.x = Netscape 2.x
Mozilla/3.x = Netscape 3.x
Mozilla/4.x = Netscape 4.x
Mozilla/5.0 = version 1.x of the Gecko rendering engine (and 0.9x and other pre-release versions)
Mozilla/6.0 = version 2.x of the Gecko rendering engine?
UA strings for Gecko browsers are very consistent - any decent stats package should be able to sort it out. Here's my default UA string:
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.7.12) Gecko/20050922 Firefox/1.0.7 (Ubuntu package 1.0.7) Mozilla/5.0 = see above
X11 = X11 Window system
U = USA (as opposed to "I" for International, a legacy from the days when strong encryption was banned for export from the US. U is standard almost everywhere now)
Linux x86_64 = my platform, 64bit Linux
en-US = my language variant
rv:1.7.12 = Gecko 1.x version number
Gecko/20050922 = build date
Firefox/1.0.7 = variant
Ubuntu package 1.0.7 = name of builder when not the Mozilla organization
The variant is listed right after the Gecko build date.
This just makes it a pain to keep my UA list updated
A comprehensive UA list is not just impractical but impossible: there are an infinite number of potential Gecko variants as the source code is available meaning than anyone can roll their own version. Same goes for KHTML and many others. What's more, the UA string can be faked so it is not a reliable indicator.
The UA string can't be changed now as there are countless Javascript/server-side detection methods which depend on how it is now. If it was changed these methods would all break - and as the older versions won't go away, scripts would need to support both the old and new UA strings.
I think you're looking at the problem from the wrong angle, but what is the problem you are addressing exactly? Bot detection? Delivering different code to different UAs?
question this forcing the rest of the industry to reconsider this "marketing" ploy
The help pages for Lynx say:
NOTE Netscape Communications Corp. has claimed that false transmissions of `Mozilla' as the User-Agent are a copyright infringement, which will be prosecuted. DO NOT misrepresent Lynx as Mozilla.