03 Август 2008
Файл ua.ini позволяет браузеру Opera прикидываться другим браузером. Это может быть полезным для плохо сконструированных сайтов, которые утверждают, что работают только с Internet Explorer или с Netscape, хотя эти же сайты прекрасно работали бы в Opera, если бы не блокировали её.
Если вы уже давно используете Opera, то, вероятно, вы наталкивались на сайты, которые утверждали, что не будут работать с Opera. Как правило, такие сайты прекрасно работают с Opera. Просто разработчики таких сайтов предвзято к ней относятся.
Сегодня мы рассмотрим способы, с помощью которых можно бороться с такими сайтами. Opera 8 вводит файл ua.ini, который позволяет управлять строкой агента пользователя (user-agent). Эту строку Opera будет подставлять «плохим» сайтам.
Что такое «агент пользователя»? Каждый браузер при посещении любого сайта сообщает о себе некоторую информацию.
Почему это имеет значение? Хорошо, откиньтесь на спинку кресла, и я расскажу вам. Если вы уже знаете о пользовательском агенте, то можете пропустить этот рассказ, и перейти непосредственно в раздел ниже о параметрах файла ua.ini.
Я думаю, что правильно излагаю подробности. Если вы знаете о сайтах, имеющих другую историю, то, пожалуйста, сообщите об этом мне.
Эта история началась много лет назад. Когда-то господствовали два браузера — Netscape и Internet Explorer, и оба они были функционально практически идентичными. Затем Netscape ввёл новую особенность. Сайты начали проверять, используете вы Internet Explorer или Netscape. Если вы использовали Netscape, то вас направляли на одну страницу, а если Internet Explorer — то на другую. Бывало и хуже — иногда просто выдавали сообщение, о том, что ваш браузер не может просматривать этот сайт.
В конечном итоге, в Internet Explorer тоже была добавлена поддержка этой особенности, но было уже поздно. Ведь почти везде уже была введена проверка, используете ли вы Netscape. И что же они сделали дальше?
Можно придумать различные предположения, но фактически Internet Explorer стал имитировать Netscape. Даже сегодня Internet Explorer до сих пор имитирует, своего рода, Netscape. Вот что сообщает Internet Explorer 6 (из Windows XP) о своём агенте пользователя:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Вы обратили внимание на то, что первое слово — Mozilla? Почему Mozilla? Это потому, что Netscape так называет себя. Да, позже появился комплекс программ под названием Mozilla, который был открытой исходной версией браузера, основанного на Netscape. Запутанно? А я ведь ещё даже не начинал.
А тем временем Internet Explorer рос (над собой), и постепенно обзаводился возможностями, которых не было в Netscape, и поэтому сайты начали искать Internet Explorer в строке агента пользователя. Затем и Netscape начал добавлять другие возможности в свой браузер, и вскоре люди всё чаще сталкивались с сайтами, которые говорили: «Этот сайт разработан для…».
«Ахтунг! Остановитесь!» — кричите вы. Если бы только я мог. В результате всей этой истории мы теперь имеем сайты, которые ищут или Netscape или Internet Explorer. Это очень плохо. Затем они ещё добавили проверку номера версии браузера, и уже говорили: «Это сайт разработан для браузера X версии 5». Конечно, со временем браузер X вырастал до версии 6, а многие из этих сайтов должным образом не проверяли «версии выше 5», и пользователи вновь получали проблемы.
Также, что ещё хуже, были различия в Netscape для Mac и Netscape для Windows, и в Internet Explorer для Mac и Internet Explorer для Windows. И теперь мы имеем сайты, которые проверяют тип браузера, версию браузера, и версию операционной системы (мы даже не будем обсуждать тот факт, что Windows XP называют «Windows NT 5.1»).
«Подождите!» — кричите вы в тщетной попытке оптимизма. «Ведь на арену вышли два совершенно новых браузера: Firefox и Safari! Сайты поняли это, и теперь уже не могут угождать лишь некоторым браузерам!»
К сожалению, этот оптимизм полностью необоснован. Оба из этих браузеров должны были столкнуться с действительностью сети. Они не могли позволить себе ограждать людей от сайтов «из-за использования браузера X». И фактически Firefox добавил новое ключевое слово: Gecko:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.7) Gecko/20050414 Firefox/1.0.3
И что сделали люди? Они начали искать слово «Gecko». Вы можете видеть, куда это привело. Теперь браузер Safari имитирует Firefox, и добавил слово «Gecko» в свою строку агента пользователя:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312
В результате всей этой канители, нас уже не должно удивлять то, что Opera оказалась в сети, где слишком много сайтов знают только о Internet Explorer и Netscape.
Доступные параметры
Что остаётся делать браузеру Opera? Она могла бы сказать: «Я — Opera! Пустите меня!» Но, естественно, большинство сайтов этого не сделают. Поэтому Opera тоже прикидывается другим браузером. По умолчанию Opera притворяется браузером Internet Explorer. Нажатие клавиши F12 позволит вам изменить текущую идентификацию браузера (или вы можете установить значение по умолчанию в Настройки → Дополнительно → Сеть).
В более поздних версиях Opera глобальную идентификацию убрали, и теперь Opera по умолчанию на всех сайтах представляется самой собой. Но ввели новую возможность: для конкретных сайтов теперь можно настраивать индивидуальную идентификацию.
Для пользователей Mac: некоторые сайты начинают понимать, что IE для Mac — мёртв. Я уже столкнулся с одним сайтом, который сказал мне, что я должен использовать более новый браузер. О, и к вашему сведению, мало того, что Firefox для Mac не сообщает о себе, как основанный на движке Gecko, так он ещё и сообщает о себе, как о IE 6:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Так что, пользователи Mac, возможно, нуждаются в этой функции больше, чем пользователи Windows.
Список изменений в Opera 8 сообщает о следующих доступных вариантах:
- Идентифицировать как Opera
- Идентифицировать как Mozilla
- Идентифицировать как Internet Explorer
- Идентифицировать как Mozilla, полностью скрыть идентификатор Opera (маскироваться под Mozilla)
- Идентифицировать как Internet Explorer, полностью скрыть идентификатор Opera (маскироваться под Internet Explorer)
1, 2 и 3 — это то же самое, что вы всегда могли получить в меню по F12. А пункты 4 и 5 являются новыми возможностями, и полностью удаляют слово «Opera» из строки агента пользователя.
Редактируя файл ua.ini, вы можете обманывать сайты, говоря им, что вы используете другой браузер. Вы заметите, что большинство сайтов работаю прекрасно, даже если они утверждают, что вы должны использовать Netscape или Internet Explorer. Строку агента пользователя рекомендуется изменять для сайтов, разработанных компанией Microsoft (особенно MSN), которая замечена в блокировке браузера Opera без всякой видимой на то причины.
Как использовать это?
Файл довольно прост. Перед редактирование файла убедитесь в том, что Opera не запущена. Формат файла примерно такой:
Opera Preferences version 2.0
; Do not edit this file while Opera is running
; This file is stored in UTF-8 encoding
[Identity]
www.opera.com=1
pncbank.com=4
online.wellsfargo.com=4
gmail.google.com=1
gmail.com=1
msdn.microsoft.com=2
Просто добавьте данные в таком же формате.
Haavard писал, что Opera проверят обновления файла каждый раз, когда вы выполняете проверку обновлений для Opera (это в меню «Справка», и мы об этом поговорим позже). Вместе с проверкой обновлений, Opera также проверят обновления для файла ua.ini. Это означает, что если вы полностью переделали ваш файл ua.ini, то вы можете удалить его, перезапустить Opera, выполнить проверку обновлений, и файл будет автоматически воссоздан!
Где найти этот файл?
Для пользователей Mac: используйте ~/Library/Preferences/Opera Preferences/. Пользователи Windows и других систем должны посмотреть параметр «Папка Opera» на странице «О программе». Данный параметр обычно заканчивается /profile/. Вы найдёте файл в указанной папке.
Почему Opera не удаляет слово «Opera» из строки агента пользователя с помощью настроек, находящихся в меню по F12? Просто потому, что если так оно и будет, то Opera, можно сказать, исчезнет из сети. Люди, которые делают сайты, никогда бы не видели людей, использующих Opera. Даже и сейчас многие сайты занижают сведения об использовании Opera, потому что в полной мере не проверяют строку агента пользователя.
Хотелось бы надеяться, что Opera введёт указание строки агента пользователя в индивидуальные настройки для сайтов, и нам больше не нужно будет вручную редактировать файл ua.ini.
Так оно и случилось в последующих версиях Opera: теперь для каждого сайта можно настроить идентификацию Opera прямо из интерфейса браузера.
Подробнее об упоминающейся здесь клавише F12 и ещё немного про идентификацию браузеров можно почитать в статье (из предыдущего курса) под названием День 4: Клавиша F12 круче всех возможностей вашего браузера.
« День 8: Подгонка по ширине окна | День 10: Пользовательские JavaScript »
Последнее обновление: 22.08.2008 19:56

