WebAIM - Web Accessibility In Mind

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. Natalie

    1this is Hilarious!! Thanks

  2. Yura

    ROFLMAO. Absolutely brilliant!

  3. Gemma

    Is that Genesis by way of Monty Python? It’s just great. Thank you; I’m glad the Web world can Google Chrome with humour ๐Ÿ™‚

  4. Boricevich

    BRAVO, BRAVO!!!!!!

  5. Joshue O Connor

    lol, good stuff. I await more as the saga continues, will Chrome smote Mozilla, or will Mozilla bruise the heel of Chrome and crush each other with enmity?

  6. operagal

    …and so it is written!

    good stuff there. This is my all-time favorite line:
    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.

    thank you for this.

  7. permial

    I’ve been a contributor (to the mozilla project) for over 15 years.

    All I can say is WOW!!! Our new prophet for platypus is in the house (just kidding). But, dude, you hit it on the head and made if fun. I’d pop some code here but it wouldn’t be published if I did. Major attaboy for you. Please continue to write and publish. Add me to anything fun that you do.

  8. permial

    One note: If I have to support many more browsers:

    The CPU said to the OS, one is good, two is better, but give it a rest already!

  9. Mubbashir

    Thanks Aaron, This is simply hilarious..

  10. ksmith

    Amen.

  11. junglist313

    Here good sir, take all of thy internets, I am not worthy of their stead, for you on this glorious day have vanquished the haze and brought forth the light.

  12. Julia

    Amazing! Imagine Rowan Atkinson performing a sketch with this text. Like this one: http://www.youtube.com/watch?v=fTzXJMU1sLc

    I would love to hear it:)

  13. Anthony Cargile

    LMFAO!!! what a bad history I am linking to this

  14. Fosnez

    This needs an intro like:

    From the Book of Mozilla 31:1

  15. Scott

    Very witty and educational.

    I was going to bookmark this to my delicious account, but alas, I am rendering your page with 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 which lacks delicious extension support.

  16. Ryan Smith

    Classic.

    Easily the best thing I have read all day.

  17. Alex

    You, sir, made my day. Great article! Thanks for the entertainment and good historical info.

  18. Kalyan

    Very nice post, very funny.

  19. nevermore781

    ROFL…you forgot Lynx browser strings though ๐Ÿ˜› Seriously, this is funny and some good info.

  20. Jiffy lube

    Wow dude, FireFox 3 rocks. best browser of ALL time

    Jiff
    http://www.anonymize.us.tc

  21. Saulo

    Thanks for the entertaining, great read ๐Ÿ™‚

  22. Joe

    I love it. Please forgive one small quibble–Microsoft did not create its own web browser. It bought a browser created @ the University of Illinois.
    http://www.nndb.com/people/442/000022376/
    It is much the same story as Microsoft buying the initial version of DOS which it turned around and licensed to IBM.

  23. bob

    Easily the best thing I’ve read since Fake Steve was laid to rest. Conceived, no doubt, in frustration but executed with brilliance.

    Thanks so much.

  24. Steve Firth

    If all history was written thusly, there would indeed be much rejoicing.

  25. Noses

    And yea though the Mobile Device was borne down from the mountain and it too had a host of UAProfs and darkness descended across the land as though a great plague of frogs hath sprung forth of the Sky. ๐Ÿ˜‰ Thus winketh tha Lord, and he saideth “Thou Shalt Make It WAP Compatible” and he gave unto Moses the many MIME-types ——

  26. sabat

    It did not stand for Mosaic Killer. It was just a play on Mosaic vs. Godzilla. Where did you get the ‘killer’ idea? It just sounded right to you and so you presumed it was fact?

  27. Blues_Time

    Hilarious and sadly true!

    This is probably the story of many other industries, read the story of VHS vs Beta, HD-DVD vs Blu-ray and so on.

    Does this kind of war contribute in advancing in technologies, and good to us (users)?

    Any way your story was informative and fun.

    Keep on writing Aaron …

  28. Squozen

    Sterling! Laughed out loud.

  29. Steve

    Fun article! Just a couple of things:

    The first version of the commercial browser was Mosaic Netscape, by Mosaic Communications, later renamed “Netscape Navigator” and Netscape, respectively.

    Also, the original IE was code licensed from Spyglass, and contained a message about NCSA in the About dialog.

  30. sabazilla

    Sabat, type “mosaic killer” into Google and you’ll find a long list of references. As to whether or not the etymology is correct, probably only Jamie Zawinski could say.

  31. awesome guy

    Sigh, waste of time

  32. JalanSutera.comรขโ€žยข

    And God Blessed Google Chrome. Amen!

  33. Alex in Toronto, ON CANADA

    Funny, but I expected an ending worthy of the original account of creation at least.

  34. Youfan

    And I am totally lost… So I should pretend to be whom? ๐Ÿ˜†

  35. Henri Sivonen

    Safari was the first to put “KHTML” in the UA string. Konqueror 3.2 came after the first Safari beta and public source drop.

    See: http://www.useragentstring.com/pages/useragentstring.php?name=Konqueror

  36. Mattias

    And soon Android and iPhone will pretend to be able to do what the other phone do, and that will be interesting.

  37. Smift

    what about phoenix and firebird etc..?!

  38. Vassilis (Greece)

    Excellent article. Extremely funny. Thanks

  39. Rob

    Very funny. Thanks for a good laugh ๐Ÿ™‚

  40. Dave

    A superb history of the User Agent String. Thank you!

  41. WPJunkie

    lol Thanks for the great morning laugh! Great article.

  42. Adam

    Best. Browser article. Ever.

  43. Brian King

    The only conclusion I can reach from this is that all browsers want to be Mozilla (Firefox), even before it existed!

  44. glandium

    You missed the newest Camino user-agent, which includes “Firefox”, now…

  45. mocona

    History written in an easy to understand way. And very funny too… i love it… great job

  46. Karl Fogel

    Oh thank you thank you thank you!

    My day is already not wasted now.

  47. Patrick

    Imagine writing one of these for the mobile webโ€ฆ it would be a long and dark tome with many dragons…

  48. Michael

    The lesson of this is, “as a web developer, test for the features you want rather than sniffing for a browser that you think might be the one that has them.”

    Problem solved by better code design.