Forum Moderators: open

Message Too Old, No Replies

Mozilla 5.0 does not exist, why is it always in UAs?

         

JAB Creations

1:03 am on Dec 18, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



I'm all for seeing people mod Gecko browsers but when they mod the UA to include the name of their new browser I'm not exactly sought out and informed. Statistics programs (or at least my moded AWStats) will not catch the new name but will instead still count the new browser as Mozilla Suite ( rv: ). Thus I am unaware unless I actively seek them out.

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?

jdMorgan

1:28 am on Dec 18, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



The Mozilla/5.0 identifier is used to specify which family of Mozilla browser is accessing your site. For non-Mozilla browsers or non-browsers (i.e. robots), the user-agent should include the word "compatible" and then further identify itself by maker, name, version, and perhaps include other optional info such as the OS and supported encryption level.

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

JAB Creations

2:30 am on Dec 18, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Thanks Jim but that still makes no logical sense. The latest version of Mozilla is 1.7.12.

jdMorgan

3:00 am on Dec 18, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Netscape's numbering system is what applies here, with Mozilla/4.0 applying to the Netscape/4.x series of browsers, which were then replaced with the Netscape 6, 7, and now 8 series (they skipped Netscape 5 to 'keep up' with MSIE 6.0 -- go figure), all of which are based on what Netscape called the Mozilla 5 core.

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

encyclo

3:30 am on Dec 18, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



>> logical sense

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.

JAB Creations

5:36 am on Dec 18, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



This just makes it a pain to keep my UA list updated and adds extremely unnecessary headaches. Thanks for the explanation, maybe someday some group or person will rise to some sort of level and also question this forcing the rest of the industry to reconsider this "marketing" ploy

encyclo

1:03 pm on Dec 18, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



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?

py9jmas

1:57 pm on Dec 18, 2005 (gmt 0)

10+ Year Member



question this forcing the rest of the industry to reconsider this "marketing" ploy

No-one's forcing the industry to do anything. Microsoft chose to copy the format of Netscape's user-agent to get around braindead scripts written by webmasters. This is the same reason Opera used (?) to default to an IE-like user agent.

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.

JAB Creations

5:22 pm on Dec 18, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Many new bots that include Mozilla in their UA go unidentified for periods of time...as well as new Gecko based browsers.

I know detection of the UA isn't the most reliable way to go about things, but it's also not the only. ;)