История юзер-агентов

Original author: Aaron Andersen
  • Translation
Увидел ссылку на этот текст тут в новых. Очень понравился, жаль, что ссылка не вышла на главную. Поэтому решил сделать вольный перевод, постаравшись сохранить стиль повествования.

В Начале был NCSA Mosaic, и назвал он себя NCSA_Mosaic/2.0 (Windows 3.1), и показал он пользователем картинки в тексте, и было много радости.

И вот, пришёл новый браузер, «Mozilla», сокращение от «Mosaic Killer» — но не обрадовались бы такому в Mosaic, посему пришлось переименоваться в Netscape, а представляться как Mozilla/1.0 (Win3.1), и было ещё больше счастья и радости: поддерживал нетскейп фреймы, и понравились фреймы народу. Но мозайк не поддерживал фреймы — и стали определять юзер-агент, и Мозилле вебмастера слали фреймы, а остальным — не фреймы.

И сказали Нетскейп: «давайте постебёмся над Майкрософт и обзовём винду плохоотдебаженными драйверами устройств», и Майкрософт обиделись. И сделали они свой браузер, назвав его Интернет Эксплорером, убийцей нетскейпа. И поддерживал ИЕ фреймы, но не был мозиллой, и не получал фреймы. Нетерпелив был майкрософт, не хотел ждать милости вебмастеров, и декларировали они ИЕ как «Мозилла-совместимый», и стал он притворятся нетскейпом, и представился как Mozilla/1.22 (compatible; MSIE 2.0; Windows 95), и получил он фреймы, и праздник был в майрософте, но вебмастера задумались.

И продавала M$ IE вместе с Окнами, и сделали они его лучше нетшкафа, и первая браузерная война загремела на земле. И проиграл Нетскейп, и много радости было у майкрософт. Но возродился нетскейп Мозиллой, и сотворила Мозилла Gecko, и назвалась Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826. Геко был движком, и был хорош. И стала Мозилла Огнелисом, и назвалась Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0, и был Огнелис ещё лучше. И стал Геко плодится, и многие браузеры позаимствовали его код, и назвали себя один — Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1, второй — Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0: каждый притворялся Мозиллой, и каждый работал на Геко.

И Геко был хорош, чего не сказать об IE, и снова началась дискриминация: Геко давали хороший код, а остальным нет. И горевали сторонники Линукса, ведь создали они Konqueror, и был он движим KHTML, который мнили они не хуже Геко, но то был не Геко, и не получал он хороших страниц. Так Конкерор стал притворятся Геко, и получил хорошие страницы, назвавшись Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko), и стало ещё больше путаницы.

Потом пришла Опера, и сказала: «пусть сами пользователи определят судьбу юзер-агента своего», и сделаи менюшечку, и притворялась опера то Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51, то Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51, то Opera/9.51 (Windows NT 5.1; U; en).

И создали Apple Сафари, и использовали KHTML, но улучшили его, и ответвили в свой проект WebKit, но страницы хотели оптимизированные под KHTML, и назвались потому Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5, и стало только хуже.

И испугались Майкрософт лисьей силы, и вернулся ИЕ, и назвался Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0), и показывал правильно, но только по просьбе вебмастера.

И вот Гугл создали Chrome, и использовало их детище ВебКит, и хотели они страниц для Сафари, и притворились Сафарей. И вот Chrome использовал WebKit, притворяясь Safari, а WebKit притворялся KHTML, KHTML притворялся Gecko, и все вместе притворялись Mozilla, и вот и назвался Хромой 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, и окончательно засрался юзер-агент, став практически бесполезным, и все притворяются всеми, и путаница процветает.

Similar posts

Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 74

    +1
    А куда дели Lynx, iCab, Konqueror и кучу других?
    Получается, что только «референсные» взяли.
      +5
      1) Konqueror есть.
      2)
      В Начале был NCSA Mosaic… и показал он пользователем картинки в тексте...
      , здесь говориться по поводу полноценных браузеров. (это о Lynx).
      3) iCab и кучу других браузеров, которыми пользуются 0,0… % пользователей обычно основаны либо на Геко либо на KHTML
        0
        Konqueror пропустил, пардон.
        А iCab лишь недавно перешел на WebKit
          0
          epiphany?
            0
            вики:

            Epiphany основан на движке Gecko, который также используется в Firefox, SeaMonkey и других браузерах (в версии 2.24 или 2.26 собираються полностью заменить движок Gecko на движок WebKit).
              0
              блин) а я вот даже и не знал что есть такой браузер))
        +4
        а, что, отличный перевод!
        плюс!
          +3
          Спасибо! :)
            +1
            Очень поучительно и доступно.
              +12
              Читается на одном дыхании как молитва. Спасибо
                +7
                чертовски трудно выдерживать этот стиль. До сих пор в тексте есть несколько мест, об которые при чтении спотыкаешься. Поправляю по мере прихода мыслей в голову.
                –1
                Познавательно и весело. Здорово!
                  +4
                  Последний абзац, как вывод, улыбнул :)
                    –2
                    Содержательно, но написано не очень.
                    Как учение какой-то секты.
                      +3
                      Меня это наоборот привлекло в тексте. Стали бы вы читать историю каких-то скучных строчек, будь оно написано в стиле Википедии?
                      А тут прекрасно виден весь юмор сложившейся ситуации.
                        –6
                        Юмор виден лишь тем кто не замечает негативного влияния огромного числа псевдо-реллигий на современное общество.

                        Читать бы стал.
                        Интересна сама тема.
                        Академический язык Википедии не критичен, меня вполне удоволетворил бы и обычный литературный.

                        Что не минусуете — это хорошо, хотя и не особо важно.
                          +4
                          ваш камент должен был бы начинаться со слов: «привет, я зануда. и-так...» (с) :)
                          • UFO just landed and posted this here
                            0
                            больше псевдо-реллигий
                              +1
                              Летающий Макаронный Монстр любит всех :)
                          –2
                          зы, минусую не я.
                            +3
                            about: mozilla?
                              0
                              about: robots!
                          • UFO just landed and posted this here
                            • UFO just landed and posted this here
                              +2
                              А ведь настоящий вебмастер имеет столько шишек на лбу сколько браузеров… И это печальная правда…
                                +20
                                А я всё думал откуда в юзер-агенте IE слово Mozilla.
                                Спасибо. Стало понятней.
                                  +16
                                  Анахер/1.0 (такие; ЗАПУтанные 2.0; Юзер Агенты 3.9.91232)
                                    0
                                    Отличный перевод, над концовкой смеялся от души! :))
                                      +1
                                      Опера как-то не хронологически расположена. Исторически она опережает и переродившуюся мозиллу (на два года), и ff (на шесть лет) и konqueror (на четыре года).

                                      Про опиру стоит упомянуть, что та с пятой версии (или даже раньше?) прикидывалась IE, копируя и то, что ie прикидывался mozilla…
                                        +1
                                        Опера расположена там, где она занялась этим безумием. Вначале Opera пыталась играть по правилами и имела нормальный user-agent. Хотя вроде как выбор User-Agent'а появился до Firefox — но точно после Mozilla'ы…
                                          +1
                                          Опера стала играть юзерагентами с 6-й версии, после печальной истории с MSN.com, когда MS стали опере подсовывать там кривой код, чтобы была кривая страница и пользователи отвернулись от оперы (а шёл 2000 или 2001 год). Opera Software возмутились и подали в суд. И выиграли его (Миллион долларов отсудили, что-ли). Но с тех пор, до самой девятой версии, Опера прикидывалась IE по умолчанию (с возможностью выбора UA).
                                          Кстати говоря, Opera/9.51 (Windows NT 5.1; U; en) — самый вменяемый UA. Вменяемее только NCSA_Mosaic/2.0 (Windows 3.1)
                                        +1
                                        Порадовало. Да, пожалуй стоит пересмотреть компаниям политику юзер-агентов и назвать всё своими именами. Полегчает ли? — вопрос открытый.

                                        Лучше б сосредоточились на соответствии стандартам w3c, думаю всем станет легче, если не придется проводить часы над кросс-браузерной оптимизацией. Конечно в большей степени это относится только к одному браузеру, но да ладно, стараться должны все.
                                          0
                                          Да, пожалуй стоит пересмотреть компаниям политику юзер-агентов и назвать всё своими именами. Полегчает ли? — вопрос открытый.
                                          Ну… Web-мастерам полегчает, да. Так как любой браузер, который так сделает потеряет 99% пользователей (а может и 99.9%) сходу и про него можно будет забыть…

                                          Но есть и другие, более простые, способы угробить браузер…
                                            0
                                            В смысле если FF станет писать что-то вроде «Firefox/3.0.1 Gecko/2008070208», то он потеряет сразу всех пользователей?
                                              0
                                              Угу. Ибо куча сайтов начнут такому чуду показывать ущербный код — а то и вообще сообщать «обновите браузер, мы вас не знаем»…
                                              +2
                                              ну… моя опера отмечается как опера и особых проблем как-то не видно.
                                            0
                                            прекрасное повествование
                                              +1
                                              artyfarty, Спасибо, очень понравилось.

                                              Я понимаю, что это перевод, но мне кажется статью можно сделать намного лучше, добавляя свои примечания по поводу во-первых хронологии (действительно, Опера появилась раньше нежели «переродившийся Файрфокс»), а во-вторых — вкраце — как изменялись веб-стандарты с течением времени (упоминаются только фреймы) и какие браузеры то или иное поддерживали. Тогда топик будет вообще блеск. Я сам в свое время замучился рыскать по википедии, выясняя что было раньше, а что позже и почему. :-) Если не хочется портить перевод, и тема вам интересна, напишите еще одну статью. Я не стебусь, я абсолютно серьезно.

                                              Добавлю вам кармы в надежде, что вы это сделаете. :-) С уважением.
                                                0
                                                Спасибо!
                                                Времени у меня не густо, посмотрим :)
                                                0
                                                повеселило )))
                                                  0
                                                  вот я ток одного не понимаю. вебмастера стали делать сайты с фреймами только для мазилы, потому-что больше небыло браузеров, которые их открывали. и вот, когда исчезли браузеры, которые их показывать не могут — нафига маскироваться? и уж темболее хрому под сафари…
                                                    +2
                                                    Наследственность — тяжелая штука.
                                                      +2
                                                      Потому что есть куча готовых сайтов типа

                                                      if (… IE....) {
                                                      } else if (… Mozilla....)
                                                      } else {
                                                      document.write('Извините, ваш браузер не поддерживается');
                                                      }

                                                      Например внутренняя привата24. Далее сайт показывается нормально, но строчка присутствует. Поэтому если придумать свой новый юзерагент, то получим эту надпись. А это антиреклама для непонимающих пользователей.
                                                    • UFO just landed and posted this here
                                                        +1
                                                        «давайте постебёмся над Майкрософт и обзовём винду плохоотдебаженными драйверами устройств»

                                                        а что это означает? я не в курсе… :(
                                                          +5
                                                          Marc Andreessen, the founder of Netscape, once famously stated that Windows was nothing but a set of poorly debugged device drivers, which the web would soon make obsolete.
                                                          Первоначальный источник не найден. Marc Andreessen — разработчки Netscape
                                                          0
                                                          читать тяжело, но прикольно, так что плюс)
                                                            –9
                                                            Да, концовка прикольная особенно)
                                                              0
                                                              оригинальный текст написал в стиле пародии на библию… очень забавно читать
                                                                +1
                                                                Он написан в стиле пародии на пародию. Откуда там фраза and there was much rejoicing, догадываетесь?
                                                                  0
                                                                  ой и правда это из Монти Пайтона… при выбросе Святой Гранаты Антиоха =))
                                                                +1
                                                                мне кажется это не забавным, а очень-очень грустным… <_<
                                                                  0
                                                                  А пессимизм — это всегда грустно ;)
                                                                • UFO just landed and posted this here
                                                                    +1
                                                                    Пасибо — а то никак не мог въехать какого и ослик и огнелис являются мозиллами :)
                                                                      0
                                                                      Спасибо, многое стало понятно. Удивляет, почему в новую эпоху браузерных войн нельзя свести useragent к такому виду:

                                                                      Opera 9.51, Linux
                                                                      Safari 3.0, Windows
                                                                      IE7, Windows
                                                                      Firefox 3.0, MacOS
                                                                        +2
                                                                        потому, почему не сделали это раньше :-)
                                                                        0
                                                                        Ах вот оно что!
                                                                        Теперь многое встало на свои места.
                                                                        Еще раз спасибо за статью! и плюс в карму!
                                                                          +1
                                                                          Отлично написано. Читается со смехом.
                                                                          Долго думал, почему у всех браузеров юзер-агент начинается с Mozilla/x.0.
                                                                          Какая максимальная длина поля User-Agent по стандарту?;)
                                                                            +3
                                                                            Определение браузера на серверной стороне используется реже определения клиентского.
                                                                            А грамотное клиентское определение вообще не должно обращаться к UserAgent.
                                                                            Все, наверное, видели старый бородатый способ либо сотни его вариаций (код на данный момент устарел, привёл просто в качестве примера):
                                                                            isDOM=document.getElementById //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+) isOpera=isOpera5=window.opera && isDOM //Opera 5+ isOpera6=isOpera && window.print //Opera 6+ isOpera7=isOpera && document.readyState //Opera 7+ isMSIE=document.all && document.all.item && !isOpera //Microsoft Internet Explorer 4+ isMSIE5=isDOM && isMSIE //MSIE 5+ isNetscape4=document.layers //Netscape 4.* isMozilla=isDOM && navigator.appName=="Netscape" //Mozilla или Netscape 6.*

                                                                            Вообще, определение сводится к ключевым проверкам:
                                                                            1. Определение Оперы. Если существует window.opera, значит Opera
                                                                            2. Определение Chrome (ненадёжно)document.all есть в FF, IE и Opera, т.е почти везде. Но попробуте в Chrome ввести в адресной строке javascript: alert(document.all).
                                                                            3. Для IE есть решение «напролом»:
                                                                            <![if IE 7]> <script> var IsIE=1 </script> <![endif]>
                                                                            4. Определение IE6. XMLHttpRequest работает в Opera, FF, IE7, Chrome. Но в IE6 его нет. (проверьте: javascript: alert(typeof XMLHttpRequest))
                                                                            5. FF определяется чаще всего так: isMozilla=! isMSIE &&! isOpera. Решение «в лоб», ужасное, некрасивое, но для тех, кто верстает только под 3 браузера (часто этого хватает), сойдёт.
                                                                            5.1 Определение FF возможно внутри кода обработки события: if (typeof e.offsetX == 'undefined') { isFF=1}
                                                                              +1
                                                                              Да, определение Chrome==Определение Safari
                                                                              (но определение Chrome!===Определение Safari)
                                                                                +3
                                                                                А мне больше нравятся штуки вообще без определения браузера, вроде:

                                                                                if (! e) e = window.event;

                                                                                  0
                                                                                  Они не просто больше нравятся, они и должны быть использованны по максимуму. Браузеров выходит и бубуд выходить и через 5 лет после того, как вы напишете страничка, и определять верчию и название браузера — тупиковая ветвь.
                                                                              • UFO just landed and posted this here
                                                                                  +1
                                                                                  2. Не знаю зачем вам выделять Chrome :) но если хотите выделить движок, то используйте тоже самое для определения webkit, если вам нужно определить javascript — то есть одна особенность: V8 не разрешает использовать имя native. собственно можно попробывать такой код (не уверен что получится, но вроде должно)
                                                                                  try {
                                                                                  (new Function('return native'))();
                                                                                  }catch(e){ isChrome = 1 }
                                                                                  3. Не обязательно использовать conditional comments. Есть способ лучше
                                                                                  /*@cc_on@*//*@if (@_jscript_version) isIE=1 @end @*/
                                                                                  4. Пользуйтесь способом выше — @_jscript_version содержит версию javascript движка, каждая версия соответствует определенной версии IE. На msdn есть таблица соответствий.
                                                                                  5. Можно проверять gecko only свойства/методы, как например GeckoActiveXObject или window.atob()/window.btoa(). Последние еще в Netscape были, и насколько я знаю в других браузерах не встречаются.
                                                                                  0
                                                                                  Вы что-то перепутали относительно времени прихода Оперы и Фаерфокса.
                                                                                    0
                                                                                    Нда… Полный ппц в стане браузеров :(
                                                                                    Скоро в юзерагентах будут писать ACID совместимость:

                                                                                    User-Agent: ACID
                                                                                    User-Agent: ACID2
                                                                                    User-Agent: ACID3

                                                                                    PS: Они таки убили NCSA Mosaic…
                                                                                      0
                                                                                      Сволочи! :)
                                                                                    • UFO just landed and posted this here
                                                                                        0
                                                                                        Интересно, почему я не удивлен, что «упячка» не интересуется user-agent-ом? И надо-ли всем брать с нее пример :)))
                                                                                          0
                                                                                          Мицгол, ты?
                                                                                            +1
                                                                                            Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240
                                                                                              0
                                                                                              И это не предел! На мобилках оно выглядит так:
                                                                                              Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; NOKIA; Lumia 930) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10166

                                                                                            Only users with full accounts can post comments. Log in, please.