Question

All popular browsers' user agent strings, even Internet Explorer's, start with Mozilla/. Why is this the case?

Was it helpful?

Solution

It is a long and sad story.

In summary:

  1. Mozilla browser gets released, with User-Agent Mozilla/1.0 (Win3.1). It is publicly renamed to Netscape, but in its User-Agent it keeps its original name .
  2. Internet Explorer is released. It spoofs Netscape by starting its User-Agent with Mozilla/ because web servers were routinely browser sniffing and serving pages with frames - a feature supported by both Netscape and IE, but not other browsers of the era - to Netscape only.
  3. Over time, Gecko, Konqueror, Opera, Safari and Chrome each decide to similarly spoof the User-Agent of some previous browser in order to manipulate browser-sniffing web pages into correctly understanding their browser's features. As part of this spoofing, all the browsers start their User-Agents with Mozilla/, like the browsers before them had done. Plenty of other nonsense also results, like modern Chrome's User-Agent simultaneously claiming to be Mozilla, Chrome, Safari, and 'like Gecko'.

OTHER TIPS

I think it had to do with: http://en.wikipedia.org/wiki/User_agent#User_agent_spoofing

Back in the early days, Netscape (code named Mozilla) was the main rival of IE, and they wanted to prevent being rejected by sites rejecting browsers other than Netscape.

As mentioned by @Jason "Its a long story". Summing that story up "its just every browser pretends to be Mozilla"

After trying everything, I have finally used: http://www.useragentstring.com/

You can use the above website to get the formatted user agent and OS.
They have an API which you can use directly...

Because that's how Netscape identified itself, and Microsoft wanted to work with sites that would detect Netscape and reject anything else.

Mozilla/5.0 is the general token that says the browser is Mozilla compatible, and is common to almost every browser today. for more detail click here

Reason for this are the infamous browser wars.

In short - browsers started to pretend to be some other browser, because some websites served content based on which browser asked for it and they also wanted content meant for other browsers.

I find it surprising it still haven't been solved to this day. Since userAgent can't be safely removed for legacy reasons, why some new feature clearly identifying a browser wasn't introduced? Yes, most of the time you don't need browser detection, but rather a feature detection, but it is not built-in JS neither!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top