All popular browsers' user agent strings, even Internet Explorer's, start with Mozilla/
. Why is this the case?
6 Answers
It is a long and sad story.
In summary:
- 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 . - 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. - 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'.
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...
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!