History of the browser user-agent string

In the beginning there was NCSA Mosaic, and Mosaic called itself NCSA_Mosaic/2.0 (Windows 3.1), and Mosaic displayed pictures along with text, and there was much rejoicing.

And behold, then came a new web browser known as “Mozilla”, being short for “Mosaic Killer,” but Mosaic was not amused, so the public name was changed to Netscape, and Netscape called itself Mozilla/1.0 (Win3.1), and there was more rejoicing. And Netscape supported frames, and frames became popular among the people, but Mosaic did not support frames, and so came “user agent sniffing” and to “Mozilla” webmasters sent frames, but to other browsers they sent not frames.

And Netscape said, let us make fun of Microsoft and refer to Windows as “poorly debugged device drivers,” and Microsoft was angry. And so Microsoft made their own web browser, which they called Internet Explorer, hoping for it to be a “Netscape Killer”. And Internet Explorer supported frames, and yet was not Mozilla, and so was not given frames. And Microsoft grew impatient, and did not wish to wait for webmasters to learn of IE and begin to send it frames, and so Internet Explorer declared that it was “Mozilla compatible” and began to impersonate Netscape, and called itself Mozilla/1.22 (compatible; MSIE 2.0; Windows 95), and Internet Explorer received frames, and all of Microsoft was happy, but webmasters were confused.

And Microsoft sold IE with Windows, and made it better than Netscape, and the first browser war raged upon the face of the land. And behold, Netscape was killed, and there was much rejoicing at Microsoft. But Netscape was reborn as Mozilla, and Mozilla built Gecko, and called itself Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826, and Gecko was the rendering engine, and Gecko was good. And Mozilla became Firefox, and called itself Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0, and Firefox was very good. And Gecko began to multiply, and other browsers were born that used its code, and they called themselves Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1 the one, and Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0 another, each pretending to be Mozilla, and all of them powered by Gecko.

And Gecko was good, and IE was not, and sniffing was reborn, and Gecko was given good web code, and other browsers were not. And the followers of Linux were much sorrowed, because they had built Konqueror, whose engine was KHTML, which they thought was as good as Gecko, but it was not Gecko, and so was not given the good pages, and so Konquerer began to pretend to be “like Gecko” to get the good pages, and called itself Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko) and there was much confusion.

Then cometh Opera and said, “surely we should allow our users to decide which browser we should impersonate,” and so Opera created a menu item, and Opera called itself Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51, or Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51, or Opera/9.51 (Windows NT 5.1; U; en) depending on which option the user selected.

And Apple built Safari, and used KHTML, but added many features, and forked the project, and called it WebKit, but wanted pages written for KHTML, and so Safari called itself Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5, and it got worse.

And Microsoft feared Firefox greatly, and Internet Explorer returned, and called itself Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) and it rendered good code, but only if webmasters commanded it to do so.

And then Google built Chrome, and Chrome used Webkit, and it was like Safari, and wanted pages built for Safari, and so pretended to be Safari. And thus Chrome used WebKit, and pretended to be Safari, and WebKit pretended to be KHTML, and KHTML pretended to be Gecko, and all browsers pretended to be Mozilla, and Chrome called itself Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13, and the user agent string was a complete mess, and near useless, and everyone pretended to be everyone else, and confusion abounded.

Comments

  1. John W

    I am just curious when the flood is coming to wash away all the impure

  2. htom

    Through my laughter I’ve got to point out that Opera (with its user selectable User Agent strings) came along before Firefox. I think it was Opera 3.0 that had the selection, but that was long ago.

  3. Mo

    And then there was Cello. Wait. There was never Cello, there is only Mosaic and it’s profane, inbred offspring.

  4. Ben Simo

    Brilliant!

  5. Jacques

    I miss the old Mosaic days. Everything was so simple.

  6. Shagburn

    The days of Mosaic were better. My old motto: “If you can’t write your own web browser, you shouldn’t be on the internet”.

  7. Tales

    hahahahaha mto bom! mto bom mesmo!

  8. Booyah

    Funny stuff! The only thing missing is a few instances of ‘this begat that’…

  9. Ingo

    Opera was MUCH earlier (6 years) than Firefox.

  10. zakopane

    Funny

  11. GeroZ

    Aaaaaaawesooooome! :)

  12. Xof

    Bis …

  13. wullon

    “based on a true story”

  14. Mark

    Wuh! Funny! If only Chrome had the ability to run Firefox add-ons until they get their own, I’d use a lot more.

  15. Siegfried

    Great! I can only hope that UA sniffing some day will be obsolete. But, yes, i know, paradise is lost since ages.

  16. Carl

    And the story is probably not over… (unfortunately)

  17. Madcap

    I know who I am!
    I’m the dude playin the dude disguised as another dude!

    http://www.imdb.com/title/tt0942385/

  18. Rob Speed

    Hey, Camino (Camaro) came before Firefox (Firebird).

  19. Dave

    Quote:
    “And Apple built Safari, and used KHTML, but added many features, and forked the project, and called it WebKit, but wanted pages written for KHTML, and so Safari called itself Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5, and it got worse.”

    I would change the phrase “…and it got worse” to the following:
    “…and, lo, there was much weeping and gnashing of teeth.”

    Otherwise, this is a fantastic post. Thanks for the laugh!

  20. Alex Muller

    This is absolutely fantastic! :)

  21. Paul

    In the distant harmonious future all browsers will unite as one and the User Agent will be Teh Intarwebnets Browser (1.0).

  22. torossian

    If this is the New Testament of user-agent strings, shouldn’t the conclusion assume there will be a messiah which ushers in a 1000-year kingdom on the web?

    Like Jesuser-agent string that forgives the sins of Internet Explorer and redeems bad rendering engines.

  23. dfbills

    Awesome!

  24. james

    LOL!
    This is really funny.
    It seems that, there will be forever no ending problem when comes to cross browser compatible. All the browser seems to claim to have compatibility of all the rest, but there are still differences which make it a headache for developer.

    And, developer would have to check compatibility from the latest browser down to the core browser that those browser was trying to be compatible with… bah ..

  25. Andrew

    Here endeth the lesson.

  26. adit

    LoL briliant

    i wonder how user-agent next 10 years, maybe it will consume 1 paragraph :D

  27. Antoine

    Ok, that’s all folks ^^

  28. Kad

    Excellent!

  29. Bogdan

    Such an humorous article! Thanks for sharing this “biblical revelation” Aaron!

  30. Jasper

    Wat if we (webmaster and browser builders) would all agree that we start to use the user agent string for a supported browser feature list starting from today?

  31. Mark Alan Thomas

    Actually, in the beginning Tim Berners-Lee created the web and the browser, and they were called “World Wide Web,” and they were good.

  32. sam

    Educational and entertaining. I always wondered why all the UA strings had “Mozilla” in them and now I know.

    I will pass this on to my children, and them to theirs.

  33. мозила

    Sorry…
    I have some problems with mozila.
    It doesn’t support continuation download after interruption, start from beginning.
    Is there some decision of this problem?

  34. flashcrobat

    cheers for that one. brightened up my day, and convinced one of our developers to get rid of his

  35. flashcrobat

    sorry< prt II:
    user-agent-string.

  36. Luciano

    Genius!!

  37. Oliver Smith

    Let it not be forgotten that Mozilla was developed by members of the Mosaic team who lusted after mammon, and that the anger of Mosaic was the anger of Moses upon finding the Israelites worshipping the golden calf. Those who stayed true to Mosaic eventually joined the root of all mammon-related-evil when Microsoft had said “let there be IE” and lo and saw that it was bad, and said “OK, let there be IE 3.0 and let it be developed by those guys who made Mosaic” and lo, it was better than Mozilla and it did not partake of the blink.

  38. Steve

    And yea the servers are known as towers, and they are located in Babylon…

  39. Steve

    Verily I say unto you, this is the word. Know thy word as you seek to dwell in the world and you will not be led astray. For the path hath many versions. And versions begat acronyms. Place your trust in the word and rejoice.

  40. Mario

    Funniest thing I’ve read all week. XD

  41. Chuck Williams

    Hey – if you’re using firefox – type “about:mozilla” in your address bar.

    Great stuff, man…truly. ROTFLMAO.

  42. Kamal

    Well said, finally all want to be Mozilla, but with a different name.

    Nice article.

  43. Ferienwohnung Ostsee Nienhagen

    NIC! Nice article!

  44. suit

    very nice, thx for that much fun ;)

  45. Ngoc Van

    Excellent and hilarious!

  46. Cybaer

    And God^W Marc Andreessen said: If you use FRAMES, use NOFRAMES too – so there is no need for sniffing. But if you really have to know the browser, use window.opera, navigator.appName, navigator.product, navigator.vendor and other navigator attributes. And it was good.

    But people ate apples and used user-agent strings, so they were banished from web developers paradise …

  47. anonym

    Very Good :-)

    The new versions of Opera include the rendering-engine as well:
    > Opera/9.60 (X11; Linux x86_64; U; en) Presto/2.1.1

    But it’s still rather short compared to other monster-strings.

  48. Steve Kinney

    Very good – the history of web browsers in one brief entertaining essay. Bravo!

    However, I must nit pick a few small details…

    Microsoft did not make its own web browser. It licensed Mosaic’s code, and reworked it to make it look different from Mosaic. The beauty part: Under the terms of the agreement, Microsoft was to pay Mosaic’s owners a percentage of the income from sales of Internet Explorer. Microsoft knew, of course, that they would be “giving Internet Explorer away for free”, and they did include it with every operating system they have since distributed. Mosaic received no payment. The proud tradition of lying, cheating, and stealing as the foundation of success in the software and IT industries could be said to begin with this swindle.

    Whether Internet Explorer was better than Netscape is open to question. Would that be better in the sense of having more, and worse security defects, causing more real damage to users’ computer related assets? Better in the sense of breaking more web standards, having more rendering bugs, and trying harder to hijack open components like Java with Microsoft-only clones? Or just better in the sense of being dumped on the market “for free” with every copy of any Windows operating system, while Netscape still depended on income from sales to survive?

    Oh, and I seem to remember using Opera, and being very impressed, when it was still payware/adware, before Firefox was released.

    :o )

  49. Mark Aplet

    This is hilarious! It is even better when you read it like your the narrator for a Dr. Suess book! Awesome!

  50. rgbeast

    Thank you for the article. I made Russian translation: http://webew.ru/articles/1251.webew