Как устроен приватный режим в браузерах и почему он не гарантирует полной анонимности. Приватный режим браузера: зачем он нужен и как его включить в UC Browser.

Вокруг Internet Explorer сложилась ситуация, которая больше не прослеживается ни с одним другим браузером - разброс версий начинается с 6.0 и заканчивается 9.0. Причины использования устаревших версий могут быть совершенно разные.

  • Internet Explorer встроен в операционную систему Windows и неопытные пользователи даже не подозревают о наличии альтернативы.
  • Корпоративные пользователи с ограниченным доступом не могут самостоятельно обновить версию или сменить браузер.
  • Обновление IE до новой версии происходит через систему Windows Update, которая часто отключается по требованиям безопасности или для снижения интернет-трафика.
  • Некоторые приложения, например, банковские, могут быть «заточены» для работы только под конкретную версию IE.
  • В силу инерции мышления, когда пользователю нравится та программа, с которой он привык работать.

Сама компания Microsoft всячески поощряет переход на новые версии Internet Explorer и в 2010 году прекратила поддержку IE6 и IE7.

Что касается разработчиков сайтов, то для них такой большой набор версий является настоящей проблемой. Каждая версия IE содержит свои уникальные ошибки, особенности отображения веб-страниц, а также не поддерживает какие-то свойства CSS. Одним из радикальных вариантов решения проблемы является полный отказ разработчика от поддержки определенных версий IE. Так, некоторые сервисы Google, сайт vkontakte.ru при попытке зайти на них через IE6 выдают предупреждение о том, что вы используете устаревший браузер. С другой стороны, некоторые разработчики интернет-магазинов бьются за каждый браузер, полагая, что даже если каким-то браузером пользуется 2%, то отказ от него приведет к потере 2% клиентов.

Из-за того, что каждая версия IE может отображать сайт по своему, разработчики IE8 оказались перед сложной дилеммой - эта версия настолько отличалась от предыдущей, что при просмотре через IE8 бо́льшая часть сайтов «рассыпалась». В итоге было принято решение добавить режим представления совместимости; для быстрого переключения сайтов в этот режим возле адресной строки добавлена специальная кнопка (рис. 1.6а). В действительности при переключении в этот режим браузер начинал работать как версия 7.0. В IE9 пошли еще дальше и в нём уже можно переключаться на IE8 или IE7 (рис. 1.6б).

Рис. 1.6. Кнопка для переключения в режим совместимости
a - в IE8, б - в IE9

Обилие версий IE усложняется еще тем, что версии браузера могут работать в нескольких режимах, порождая большое количество комбинаций, которые необходимо учитывать разработчику. Начиная с версии 8.0, переключение режимов в браузере делается через Средства разработчика (Сервис > Средства разработчика ), которое проще вызвать при нажатии на клавишу F12 . В этом инструменте доступно два пункта меню связанных с режимами: Режим браузера (рис. 1.7) и Режим документов.

Рис. 1.7. Режимы браузера

Выбор режима браузера определяет следующее:

  • строка User-Agent, которую браузер отправляет на сервер, в Microsoft называется «агент пользователя»;
  • версия для условных комментариев, которую в Microsoft называют «вектор версии»;
  • режим документа.

Агент пользователя представляет собой текстовую строку, отправляемую на сервер для идентификации браузера, его версии и операционной системы. Значение User-Agent определяет не только браузер, но также поисковых пауков и сетевых роботов. Список возможных значений User-Agent и разбор строки можно посмотреть на сайте http://www.useragentstring.com . В табл. 1.1 приведены значения User-Agent при выборе разных режимов IE.

Табл. 1.1. Значения User-Agent
Режим браузера User-Agent Описание
IE7 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0; .NET4.0C; AskTbPTV2/5.9.1.14019) Серверу отправляются данные, что браузер IE7.
IE8 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0; .NET4.0C; AskTbPTV2/5.9.1.14019) Серверу отправляются данные, что браузер IE8.
IE9 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) Серверу отправляются данные, что браузер IE9.
Режим совместимости IE9 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Tablet PC 2.0; .NET4.0C; AskTbPTV2/5.9.1.14019) Серверу отправляются данные, что браузер IE7, но значение «Trident/5.0» соответствует IE9.

В вашем случае строка User-Agent может отличаться от приведенных в таблице, поскольку она зависит от версии Windows и её параметров.

Вектор версии позволяет с помощью условных комментариев определять версию IE и отдавать для неё отдельный код. Условные комментарии активно применяются в вёрстке для устранения различий в макете между IE и другими браузерами. Подробнее о них пойдёт речь позже, пока же вы можете ознакомиться с небольшим примером, который показывает текст только в IE8. Остальные браузеры игнорируют этот фрагмент, считая его комментарием.

У вас браузер IE8.

Режим документа меняется с помощью меню в Средствах разработчика (рис. 1.8).


Рис. 1.8. Режимы документа

Начиная с версии IE6, имеются следующие режимы (табл. 1.2).

Кроме переключения непосредственно в браузере, задать режим можно через тег , отправив HTTP-заголовок X-UA-Compatible .

Версия может принимать следующие значения (табл. 1.3).

Табл. 1.3. Режимы документа IE
Значение Описание
5 Вынужденное переключение в режим IE5, доктайп при этом игнорируется.
7 Вынужденное переключение в режим IE7, доктайп при этом игнорируется.
8 Вынужденное переключение в режим IE8, доктайп при этом игнорируется.
9 Вынужденное переключение в режим IE9, доктайп при этом игнорируется.
EmulateIE7 При наличии доктайпа переключается в режим IE7, в противном случае в режим совместимости.
EmulateIE8 При наличии доктайпа переключается в режим IE8, в противном случае в режим совместимости.
EmulateIE9 При наличии доктайпа переключается в режим IE9, в противном случае в режим совместимости.
Edge Устанавливает документ в наиболее новый доступный режим. Для версии 8.0 это режим IE8, для версии 9.0 это режим IE9.

К примеру, на сайте Яндекса применяется следующий код для эмуляции режима IE7.

При добавлении данного кода в документ кнопка режима совместимости (рис. 1.6) в браузере исчезает.

Эта документация перемещена в архив и не поддерживается.

Эмуляция браузеров, размеров экрана и расположений GPS

С помощью средства эмуляции можно проверять, как веб-страницы будут работать с разными режимами документов, агентами пользователя, размерами и разрешениями экрана, а также координатами расположения GPS.

Своевременное и частое тестирование

Проектирование и разработка для современного Интернета подразумевают создание веб-страниц, которые будут работать на множестве различных устройств и платформ. Средство эмуляции в средствах разработчика F12 позволяет эмулировать различные среды, в которых можно просмотреть веб-страницы. Благодаря этому средству легче выполнять поиск и отладку ошибок на ранней стадии цикла разработки.

Средство состоит из трех разделов: "Режим", "Экран" и "Географическое положение".

Новые возможности в Накопительном пакете обновления для Internet Explorer (KB2976627): каждый раз, когда установленное по умолчанию значение какого-либо параметра изменяется, поверх значка Средство эмуляции на боковой панели F12 отображается значок информационного оповещения, который сообщает об эмуляции поведения некоторой части браузера.

Режим

Режим документов

Средства разработчика F12 в Internet Explorer 11 упростили сложную матрицу браузера и режимов документов, которая использовалась в более ранних версиях, сократив ее до одного элемента: режим документов.

Доступны шесть параметров. Edge (по умолчанию) представляет все последние стандарты и компоненты, поддерживаемые в IE11. Оставшиеся пять параметров представляют Internet Explorer версий 5 (также называемой версией с режимом совместимости), 7, 8, 9 и 10. При выборе отличной от IE11 версии браузер IE11 отображает веб-страницы так, как если бы вы открывали их в данной версии браузера. Он даже меняет строку агента пользователя по умолчанию, отправляемую браузером. Вы можете вручную настроить другую строку с помощью меню Строка агента пользователя в разделе Режим .

Стоит отметить, что режим документов является эмуляцией браузеров более старых версий. Он может быть очень полезен, но если вам требуется точный попиксельный макет или если вы хотите быть уверенными, что страницы отображаются и работают определенным образом в более старых версиях IE, рекомендуется перейти на сайт Modern.ie и скачать виртуальные машины с более старыми версиями IE. Виртуальные машины работают со средами виртуализации для Windows, Mac и Linux, и вы сможете получить самые точные и надежные платформы для тестирования и отладки в более старых версиях IE и Windows.

В Windows 8.1 с обновлением, когда режим документов меняется со стандартного, будет показана причина изменения. Краткий список причин с пояснениями.

  • С помощью панели инструментов разработчика F12 : вы изменили режим документов с помощью раскрывающегося списка Режим документов .
  • С помощью метатега X-UA-Сompatible : разработчик веб-страницы использовал метатег, чтобы .
  • С помощью заголовка HTTP X-UA-Compatible : веб-сервер запросил .
  • С помощью локальных параметров просмотра в режиме совместимости : сайт был вручную добавлен в разделе .
  • С помощью списка просмотра в режиме совместимости : сайт находится в корпорации Майкрософт.
  • С помощью параметров совместимости для интрасети : установлен флажок "Отображать сайты интрасети в режиме совместимости" в разделе .

Новые возможности в Накопительном пакете обновления для Internet Explorer (KB2976627): режим документов доступен в виде раскрывающегося меню во всех средствах.

Если веб-страница не отображается в режиме документа как ожидалось , вы удалили все изменения из Средства эмуляции и ни одна из причин, связанных с режимом документов , из списка выше не отображается, возможно, ИТ-отделом вашего предприятия был назначен другой режим документов . См. сведения о Режиме предприятия ниже.

Профиль браузера

Если вы хотите проверить, как веб-страницы работают на устройстве Windows Phone 8, выбрав профиль браузера, вы сможете изменить множество настроек для простой и быстрой эмуляции устройства Windows Phone 8 и так же просто вернуться к профилю классического браузера по умолчанию.

В Windows 8.1 с обновлением добавлен вариант Предприятие для профиля браузера. Этот вариант будет отображаться только для пользователей корпоративных версий Windows 8.1 с обновлением и только при посещении веб-страниц, указанных ИТ-администраторами. Если выбран этот вариант, то IE11 работает аналогично Windows Internet Explorer 8.

Строка агента пользователя

Изменение строки агента пользователя - отличное начало отладки ошибок, которые возникают только в IE и отсутствуют в других браузерах. По существу, это способ указать IE, чтобы он определял себя как другую версию или даже другой браузер.

Иногда внешние и внутренние сценарии пытаются обнаружить, какой браузер вы используете. Даже если вы не включили обнаружение браузера в собственный код, вы можете использовать стороннюю библиотеку JavaScript или сценарий на стороне сервера, который использует эту функцию.

Проблема с функцией обнаружения браузера заключается в том, что она часто используется для уменьшения числа или для изменения функций на веб-странице на основании предположений разработчика сценария о возможностях браузера, а не на определении его фактических возможностей . Это может привести к неожиданному поведению, поскольку код, предназначенный для Microsoft Internet Explorer 6, в IE11 выполняется иначе, или функция, которую полностью поддерживает ваш браузер, может быть отключена на основании предположения разработчика.

Если изменение строки агента пользователя позволяет устранить проблему, вероятно, причина заключается в обнаружении браузера.

Режим предприятия

Начиная с обновления до Windows 8.1, в IE11 добавляется режим предприятия.

Режим предприятия включается ИТ-администраторами для определенных доменов и страниц с помощью параметров групповой политики. Он похож на , но обеспечивает совместимость с Internet Explorer 8. В Internet Explorer 8 веб-страницы в режиме предприятия работают отлично, за исключением незначительных .

При отображении страницы в режиме предприятия IE11 отображает значок режима предприятия рядом с адресной строкой.

Чтобы отключить режим предприятия на веб-странице, в инструменте эмуляции выберите в раскрывающемся списке Профиль значение Классические или отключите параметр Режим предприятия в меню Сервис .

IE11 в режиме предприятия по умолчанию представляет серверам строку агента пользователя Internet Explorer 8.

Подробнее о настройке групповой политики или параметров реестра для включения режима предприятия для конкретных веб-страниц или доменов см. в документации по режиму предприятия для ИТ-специалистов .

В Накопительном пакете обновления для Internet Explorer (за ноябрь 2014 г.) расширены функциональные возможности списка сайтов режима предприятия. Новый раздел списка позволяет ИТ-менеджерам предприятия назначать любой доступный режим документов определенному сайту, поддомену или подкаталогу.

Экран

Эмуляция экрана позволят разработчикам просматривать веб-страницы на экранах разных размеров и разрешений. Этот параметр позволяет обнаружить проблемы с отображением веб-страниц при переходе со стандартных мониторов настольных компьютеров на более маленькие экраны мобильных телефонов или более новые экраны с высоким разрешением.

Важно Эмуляции адаптируются для соответствия физическим размерам эмулированных экранов. Эмулированные пиксели могут отображаться в сжатом или развернутом виде, поэтому не рекомендуется выполнять эмуляцию, если требуется проверить точное попиксельное размещение элементов HTML. Однако эмуляция хорошо подходит для проверки адаптивных разработок и обнаружения более общих проблем с размещением элементов.

Ориентация

Доступны следующие стандартные параметры.

  • Книжная: высота экрана больше ширины экрана. Эта ориентация экрана используется на большинстве мобильных устройств.
  • Альбомная: ширина экрана больше высоты экрана. Эта ориентация экрана используется на большей части полноразмерных ноутбуков и на настольных компьютерах.

Разрешение

Предоставляется возможность выбора физических размеров и разрешений. Если вам не подходят предлагаемые варианты, вы можете установить собственные размеры и разрешение, выбрав в меню пункт Настраиваемые .

Поддерживаются размеры до 80 дюймов и 3820 x 2160.

Географическое положение

Большинство мобильных устройств может определять физическое местоположение пользователя и предлагать соответствующие сведения и службы.

Доступны три параметра имитации GPS : Выкл. , Вкл. и Включено, но сигнал отсутствует , которые можно использовать для проверки различных состояний устройств. Если выбран параметр Вкл. , веб-страница получает сведения о вводимых значениях широты и долготы .

Браузеры Internet Explorer 8 и 9 по умолчанию работают в режиме совместимости с предыдущими версиями. Такой режим включается при неустановленном DOCTYPE. В результате браузеры IE 8-ой и 9-ой версии отображают страницы так как их отображают версии 6 и 7. При этом получается существенная разница с тем, как отобразят этот же сайт другие браузеры (Chrome, Opera, FireFox, Safari и т.д.) версий, выпущенных в тот же период времени, что и IE8-9.

Для принудительного включения режима стандартов в браузерах Internet Explorer применяются метатеги. Более поздние версии могут работать как более ранние, при условии применения метатега, значения версии в метатеге предыдущей версии.

Мета тег X-UA-Compatible управляет режимом отображением страниц в браузерах IE8+. Тег должен находиться в секции head страницы перед всеми остальными элементами, за исключением title и других мета-элементов. В противном случае он игнорируется!

Значения атрибута content:

  • IE=5 - Отображение содержимого в режиме совместимости IE5, отображает страницы так, как это делает браузер IE5.5 независимо от того, содержится ли на странице директива DOCTYPE
    - Quirks mode (режим совместимости)
  • IE=7 - Отображение содержимого в стандартном режиме IE7, отображает страницы так, как это делает браузер IE7 независимо от того, содержится ли на странице директива DOCTYPE.
    - IE 7 Standards mode (стандартный режим IE7)
  • IE=EmulateIE7 - принуждает IE использовать директиву DOCTYPE для задания способа отображения содержимого. Директивы стандартного режима отображаются в стандартном режиме IE7, а директивы режима совместимости отображаются в режиме IE5.5.
    - IE 7 Emulation mode (режим эмуляции IE7)
  • IE=8 - Отображение содержимого в стандартном режиме IE8, отображает страницы так, как это делает браузер IE8 независимо от того, содержится ли на странице директива DOCTYPE.
    - IE 8 Standards mode (стандартный режим IE8)
  • IE=EmulateIE8 - принуждает IE использовать директиву DOCTYPE для задания способа отображения содержимого. Директивы стандартного режима отображаются в стандартном режиме IE8, а директивы режима совместимости отображаются в режиме IE5.5.
    - IE 8 Emulation mode (режим эмуляции IE8)
  • IE=edge - всегда использует последний доступный стандартный режим отображения независимо от DOCTYPE.
    - Edge mode (последний режим).
  • IE=9 - Отображение содержимого в стандартном режиме IE9, отображает страницы так, как это делает браузер IE9 независимо от того, содержится ли на странице директива DOCTYPE
    - IE 9 Standards mode (стандартный режим IE9)
  • IE=EmulateIE9 - принуждает IE использовать директиву DOCTYPE для задания способа отображения содержимого. Директивы стандартного режима отображаются в стандартном режиме IE9, а директивы режима совместимости отображаются в режиме IE5.5.
    - IE 9 Emulation mode (режим эмуляции IE9)

Например, если в секции head написать метатег такого вида:

то браузер Internet Explorer будет использовать последний доступный стандартный режим.

А метатег установленный в заголовке страницы сайта, будет переключать обозреватели IE 8 и IE 9 в режим работы аналогичный режиму работы Internet Explorer 7.

© Копирование материалов разрешается только с указанием прямой ссылки на эту статью.
Просто скопируйте следующий код.

Данный раздел не имеет прямого отношения к скачиванию файлов, но, раз мы заговорили о безопасности и анонимности работы в Интернете, затронем немного и эту тему. При любой работе в Интернете на компьютере остается различная информация, указывающая на то, какие сайты вы посещали, какие данные указывали в различных анкетах, какие картинки просматривали и т.д. Эта информация хранится в различных служебных и временных каталогах жесткого диска.

Если вашим компьютером пользуются несколько человек, они могут просмотреть данную информацию, что не всегда желательно. Например, вам бы наверняка не хотелось, чтобы начальство узнало, что в рабочее время вы загружали развлекательные сайты, читали анекдоты или рассматривали новинки моды. Следы деятельности в Интернете можно удалить.

    При посещении веб-страницы на жестком диске компьютера сохраняется следующая информация:
  • Журнал посещений. Он содержит адреса и названия сайтов, которые вы посещали. Создан он для удобства, чтобы вы в любой момент могли быстро найти сайт, который просматривали неделю назад, но забыли его адрес. Но этот же журнал может служить и доказательством того, что на работе вы занимались чем угодно, но только не работой.
  • Кэшированные данные. Во время просмотра страниц на жесткий диск автоматически скачивается содержимое этих страниц (картинки, анимация, видео, скрипты). Все это делается для ускорения загрузки этих же страниц при следующих посещениях. Все эти картинки, анимация и другие визуальные объекты при следующих посещениях страниц будут загружаться на страницу уже не из Интернета, а с жесткого диска, что намного быстрее. Однако эти же картинки могут вас и выдать. Если кто-нибудь просмотрит каталог с кэшированными данными, то по характеру картинок, анимации и видео сможет догадаться, какого рода сайты вы посещали. Если временный каталог изобилует картинками автомобилей, вполне очевидно, что весь рабочий день вы посещали сайты, посвященные автомобилям.
  • Куки-файлы. Куки-файлы (cookies) - это текстовые файлы, содержащие некоторые сведения о посещенных сайтах. Также при некорректном выходе из каких-то персональных разделов на сайте (например, при некорректном выходе с персональной страницы в социальной сети) в куки-файле может остаться имя вашей учетной записи, адрес электронной почты и даже пароль. Пароль, правда, хранится в зашифрованном виде, но для опытного злоумышленника не составит большого труда его расшифровать. Также некоторые куки-файлы могут мешать входу на некоторые сайты.
  • Учетные записи и пароли. По вашему желанию браузер может запомнить вводимые имена учетных записей и пароли. Делается это для удобства: при частом посещении сайтов, требующих авторизации, вам не придется каждый раз вводить логины и пароли. Но это удобно, если компьютером пользуется один человек. Если кто-то еще имеет доступ к вашему компьютеру, он будет иметь доступ и к вашим учетным записям.

Все описанные выше «следы» хранятся на жестком диске в виде различных файлов. И, поскольку они являются файлами, вы можете их удалять. Причем вам не нужно вручную выискивать все эти файлы на диске: чистка выполняется средствами браузера. Рассмотрим, как это делается в популярных браузерах.

В Internet Explorer:

  • Нажмите кнопку Сервис (Tools) и в появившемся меню выберите команду Свойства обозревателя (Internet Options). На экране появится диалоговое окно Свойства обозревателя (Internet Options).
  • В появившемся диалоговом окне перейдите на вкладку Общие (General).
  • Нажмите кнопку Удалить (Delete) в группе История просмотра (Browsing history). Будет выполнено удаление журнала посещений, куки-файлов, кэшированных файлов, введенных ранее логинов и паролей.
  • Нажмите кнопку ОК, чтобы закрыть диалоговое окно.

В Mozilla Firefox:

  • Нажмите кнопку Firefox и в появившемся меню выберите команду Настройки (Settings). Появится диалоговое окно настроек программы.
  • В появившемся диалоговом окне перейдите на вкладку Приватность (Privacy).


  • Щелкните мышью по ссылке Очистить вашу недавнюю историю (Clear browser history). На экране появится диалоговое окно Стирание недавней истории (Clear browser history).


  • В раскрывающемся списке Очистить (Clear) выберите период, за который нужно стереть журнал посещений. Например, чтобы удалить информацию о посещенных сайтах за последние два часа, выберите пункт За последние два часа (Last 2 hours). Чтобы удалить весь журнал посещений, выберите пункт Все (Аll).
  • Нажмите кнопку Очистить сейчас (Clear now). Журнал посещений за указанный период будет удален.
  • В диалоговом окне настроек Firefox щелкните мышью по ссылке Удалить отдельные куки (Clear cookies). Откроется диалоговое окно Куки (Cookies).


  • В появившемся диалоговом окне нажмите кнопку Удалить все куки (Delete all cookies). Обратите внимание на возможность удалять отдельные куки-файлы.
  • Нажмите кнопку Закрыть (Close), чтобы закрыть диалоговое окно.
  • Нажмите кнопку ОК, чтобы закрыть диалоговое окно настроек Firefox.

В Opera:

  • Выберите команду меню Настройки => Общие настройки (Tools => Preferences). На экране появится диалоговое окно Настройки (Preferences).
  • В появившемся диалоговом окне перейдите на вкладку Расширенные (Advanced).
  • В списке, расположенном в левой части диалогового окна, выберите категорию История (History).


  • Поочередно нажмите кнопки Очистить (Clear) и Очистить (Empty now) в строках Помнить адресов (Addresses) и Дисковый кэш (Disk cache). Журнал посещений и кэшированные файлы будут удалены.
  • В списке, расположенном в левой части диалогового окна, выберите категорию Cookies.
  • Нажмите кнопку Управление Cookies (Manage Cookies). На экране появится диалоговое окно Управление cookie (Cookie Manager).



  • Выделите куки-файл, который нужно удалить.
  • Нажмите кнопку Удалить (Delete).
  • Аналогичным образом удалите другие нежелательные куки-файлы.

В Google Chrome:

  • Нажмите кнопку Настройка и управление Google Chrome. Появится меню.
  • В появившемся меню выберите команду Настройки (Settings). В окне браузера откроется вкладка настроек программы.
  • На появившейся вкладке перейдите в категорию История (History). Категория выбирается в списке, расположенном слева.


  • Нажмите кнопку Очистить историю (Clear browsing data). Появится диалоговое окно Очистка истории (Clear browsing data).
  • В раскрывающемся списке Удалить указанные ниже элементы (Obliterate the following items from) выберите период, за который нужно удалить данные. Чтобы выполнить полную очистку, выберите пункт За все время (The beginning of time).
  • Отметьте флажками типы данных, которые нужно удалить.
  • Нажмите кнопку Очистить историю (Clear browsing data).
  • Закройте вкладку настроек браузера Google Chrome.


Итак, в любом браузере предусмотрена возможность удаления любых следов деятельности в Интернете. Однако в некоторых браузерах также предусмотрен режим, при котором эти следы и не появляются. Такой режим работы называется анонимным или режимом инкогнито. При работе в анонимном режиме браузер не запоминает сайт, на который вы зашли, не кэширует никакие данные, не запоминает пароли и логины, не хранит куки-файлы. То есть, если вы хотите посетить сайт в Интернете и при этом не хотите, чтобы кто-то на вашем компьютере мог найти следы посещения этого сайта, вы можете использовать анонимный режим.

Рассмотрим, как включается анонимный режим в разных браузерах.

В Internet Explorer:

  • Нажмите кнопку Безопасность (Safety).
  • В появившемся меню выберите команду Просмотр InPrivate (InPrivate Browsing). Откроется новое окно браузера.


В левой части адресной строки появившегося окна браузера отображается надпись InPrivate. Это означает, что посещение любого сайта, открытого в данном окне, не будет оставлять никаких следов на вашем компьютере.


В Mozilla Firefox:

  • В верхнем меню выберите команду Файл => Новое приватное окно или нажмите кнопку Firefox. В появившемся меню выберите команду Новое приватное окно.



Сайты, посещение которых вы не хотите афишировать, нужно открывать на вкладке Приватный просмотр (Private browsing).


В Opera:

  • Выберите команду меню Файл => Создать приватную вкладку (File => New Private Tab) или нажмите кнопку Opera. В появившемся меню выберите команду Вкладки и окна => Создать приватную вкладку. В браузере откроется вкладка Приватная вкладка (Private Tab).
  • Загрузите сайт на приватной вкладке.




В Google Chrome:

  • Нажмите кнопку Настройка и управление Google Chrome.
  • В появившемся меню выберите команду Новое окно в режиме Инкогнито (New incognito window). Появится новое окно браузера. В левом верхнем углу окна будет отображаться рисунок в виде человечка в шляпе и темных очках. Это говорит о том, что данное окно браузера работает в анонимном режиме.



Любые сайты, открытые в окне анонимного просмотра, не будут оставлять следов на компьютере.

Анонимные режимы можно использовать также в тех случаях, когда вам нужно зайти в какие-то свои аккаунты (например, в аккаунт электронной почты или на персональную страницу в социальной сети) с чужого компьютера. В анонимном режиме вы можете не переживать, что ваши логины и пароли сохранятся и владелец компьютера сможет ими воспользоваться.

Чтобы работать как с современными страницами, написанными в соответствии с веб-стандартами, так и с тем, что осталось в наследство еще с конца 90-х, движки современных браузеров могут работать в разных режимах. Давайте еще раз посмотрим, что это за режимы и чем они переключаются.

О чем эта статья

Здесь описывается переключение режимов применительно к Firefox и другим браузерам на движке Gecko, Safari и другим браузерам на движке WebKit, Opera, Konqueror, Internet Explorer для Mac, Internet Explorer для Windows и браузерам-надстройкам над IE. Вместо названий движков будем пользоваться названиями самого известного браузера на каждом движке.

Назвыания движков браузеров

Browser Engine ECMAScript Engine
Firefox, Mozilla Gecko SpiderMonkey
Internet Explorer 4…7 Trident jscript
Mac IE 5 Tasman jscript
Opera 7…9.2 Presto linear_b
Opera 9.5 Presto Core 2 futhark
Konqueror KHTML KJS
Safari WebKit JavaScriptCore

Статья посвящена механизму переключения режимов и не описывает поведение каждого режима в деталях.

Режимы

Ниже перечислены различные режимы современных браузеров:

Для страниц с типом контента text/html

Выбор режима для контента с типом text/html зависит от декларации doctype (подробности ниже). В IE8 режим зависит также от других факторов. Но по умолчанию даже в IE8 режим зависит от доктайпа (для не-интранет-сайтов, не внесенных в «черный список» Microsoft).

Внимание: поведение одноименных режимов у разных браузеров может отличаться (хотя в статье они описываются единообразно)!

Quirks Mode (режим обратной совместимости)

В Quirks mode браузеры намеренно нарушают современные спецификации веб-языков, чтобы страницы, написанные в манере конца 90-х, не разваливались. Разные браузеры воспроизводят разные причуды. IE6, 7 и 8 в Quirks mode фактически воспроизводят IE 5.5. У других браузеров Quirks mode - набор отклонений от «почти стандартного» режима.

Если вы пишете новые страницы, то от вас ждут соблюдения соотв. спецификаций (в частности, CSS2.1) и использования стандартного режима.

Standards Mode (стандартный режим)

В стандартном режиме браузеры пытаются обращаться с правильно составленными документами в полном соответствии со спецификацией - настолько, насколько данный браузер поддерживает стандарты.
Поскольку уровень поддержки стандартов разными браузерами различается, то даже стандартный режим, увы, пока не может гарантировать полностью одинакового отображения и поведения страниц.

HTML 5 называет этот режим «режимом без причуд» (no quirks mode).

Almost Standards Mode («почти стандартный», полустандартный режим)

У Firefox, Safari и Opera (начиная с 7.5) и IE8 есть и третий режим - «почти стандартный», при котором рисунки в ячейках таблицы выравниваются по вертикали традиционно (т.е. без текстовых отступов под ними - прим. перев. ), а не в строгом соответствии со спецификацией CSS2. IE 6 и 7 для Windows, Opera ниже 7.5 и Konqueror не нуждаются в таком режиме, поскольку даже в своих стандартных режимах не соблюдают спецификации относительно выравнивания картинок в ячйках таблиц. Фактически, их стандартные режимы ближе к «почти стандартному» режиму Мозиллы, чем к ее стандартному режиму.

HTML 5 называет этот режим «режимом с ограниченными причудами» (limited quirks mode).

Режим IE7

У IE8 есть режим, в основном воспроизводящий стандартный режим IE7. У других браузеров подобных режимов нет, нет его и в спецификации HTML5.

Для страниц с типом контента application/xhtml+xml (XML-режим)

В Firefox, Safari и Opera HTTP-заголовок Content-Type:application/xhtml+xml (но не Doctype и не элемент meta !) включает XML-режим. В нем эти браузеры обрабатывают XML-документы в соответствии со спецификацией (в той мере, в какой она в них реализована).

IE6, 7 и 8, равно как Mac IE5, не поддерживают application/xhtml+xml в принципе.

В браузере Nokia S60, основанном на движке WebKit, application/xhtml+xml не включает XML-режим, ради совместимости с синтаксически некорректным мобильным контентом (старые мобильные браузеры не использовали настоящего XML-парсера, поэтому на специальных сайтах для мобильников может встречаться некорректный XML).

Что происходит с такими страницами в Konqueror, автор пока не выяснил.

Режимы, не относящиеся к вебу

У некоторых движков также имеются режимы, не предназначенные для веб-контента. Здесь они упомянуты лишь «для коллекции». У Оперы есть режим WML 2.0. У WebKit на OS Leopard есть специальный режим для старых виджетов Dashboard.

Где и как это проявляется

Различие режимов проявляется в следующем:

Отображение

Режимы для text/html влияют главным образом на отображение CSS. Например, стили в таблице не наследуются - это «причуда», проявляющаяся только в Quirks mode. В некоторых браузерах в Quirks mode используется боксовая модель IE 5.5. Всех «причуд» отображения в одной статье не перечислить (наиболее удачная попытка, которую я смог найти, - прим. перев. ).

В «почти стандартном» режиме (в тех браузерах, у которых он есть) высота ячеек таблиц, содержащих одни рисунки, вычисляется иначе, чем в стандартном режиме.

В XML-режиме к HTML-элементу body не применяется ряд специальных правил (напр., его фон не распространяется на корневой элемент - прим. перев. ) и CSS-селекторы становятся чувствительны к регистру.

Парсинг

Есть несколько «причуд», которые влияют на парсинг HTML и CSS, и могли бы помешать правильному парсингу корректных страниц. Такие причуды включаются и выключаются вместе с «причудами» отображения, т.е. с Quirks mode (насколько я знаю, их две основных, это комментарии с двойным дефисом и таблицы внутри

Прим. перев. ). Однако, важно понимать, что противопоставление Quirks mode и Standards mode относится главным образом к парсингу и отображению CSS, а не к парсингу HTML.

Многие ошибочно считают стандартный режим «режимом строго парсинга», думая, что он заставляет браузеры считаться с правилами синтаксиса HTML и что браузеры в нем способны оценивать правильность разметки. Ничего подобного. Браузеры пытаются исправлять «теговый суп» даже тогда, когда действует стандартный режим отображения (в 2000-м, до выхода Netscape 6, у Мозиллы действительно были режимы парсера с принудительной проверкой синтаксиса, но они оказались несовместимы с суровой действительностью и от них пришлось отказаться).

Другое распространенное заблуждение связано с парсингом XHTML. Многие считают, что само указание XHTML-ного Doctype меняет тип парсинга. Это не так. XHTML-документы, отданные сервером как text/html , разбираются тем же парсером «тегового супа», что и HTML. С точки зрения браузеров, такой XHTML - всего лишь «суп из тегов с гренками» (лишними слешами там и сям).

Лишь документы, отданные с XML-ным Content-type (напр., «application/xhtml+xml» или «application/xml») включают XML-режим парсинга, правила которого полностью отличаются от HTML-ного.

Скрипты

Хотя «причуды» Quirks mode касаются главным образом CSS, у скриптов бывают свои «причуды». Например, у Firefox в Quirk mode можно обращаться к элементам по id, как к глобальным переменным (как это сделано в IE). Влияние смены режимов в скриптах в IE8 заметнее, чем в других браузерах.

В XML-режиме некоторые интерфейсы DOM ведут себя в корне по-другому, потому что поведение DOM API для XML). было задумано как несовместимое с таковым для HTML.

Doctype как переключатель режимов, или «вынюхивание Doctype» (в оригинале «Doctype Sniffing» - прим. перев. )

Все современные браузеры ориентируются на Doctype (или его отсутствие) в начале страницы, выбирая режим отображения для документов типа text/html . К документам, отданным сервером с XML-ным Content-type, это не относится.

Объявление типа документа (Doctype) - это синтаксический пережиток SGML, исторического фреймворка для описания языков разметки, на котором был основан HTML до появления HTML5 (который лишь похож на SGML, но не основан на нем). В спецификации HTML 4.01 сказано, что объявление типа документа нужно для получения информации о версии HTML. Но несмотря на название «объявление типа документа» и несмотря на то, что говорит спецификация HTML 4.01, объявление типа документа - не самое подходящее средство для проверки принадлежности SGML- или XML-документа к определенному типу , хотя, казалось бы, именно для этого оно и придумано (судя по названию). Более подробно об этом - в конце статьи.

Ни спецификация HTML 4.01, ни стандарт ISO 8879 (SGML) ничего не говорят об использовании Doctype в качестве переключателя режимов отображения. «Вынюхивание Doctype» основано на наблюдении, что подавляющее большинство документов с «причудами» на тот момент либо не имели Doctype, либо содержали в нем ссылки на устаревшие DTD. HTML5 признает эту реальность и определяет doctype только для страниц типа text/html , и исключительно для переключения режима.

Типичное объявление типа документа (до появления HTML5) состояло из строки «». Doctype размещается в документе до открывающего тега корневого элемента.

Выбор Doctype

text/html

Простые советы по выбору Doctype для новых документов, отдаваемых сервером как text/html
Cтандартный режим, валидация по «последнему слову техники»

Это лучший вариант, если вам нужна валидность новшеств типа

Cтандартный режим, валидация по устоявшейся схеме

Этот доктайп тоже включает стандартный режим, определение валидности 10-летнего «старичка» HTML4.01 стабильнее некуда. Но тоже обязательно проверяйте выравнивание рисунков в таблицах в Firefox, Safari, Chrome, Opera 9 или 10. Тестирование его в IE не даст адекватного результата (хотя в IE8 проверить тоже надо)!

Вы в целом готовы использовать стандартный режим, но при этом хотите, чтобы устаревшая разметка проходила валидацию, либо ваша верстка строится на разрезанных картинках в таблице и вам лень исправлять их все:

Это даст вам «почти стандартный» режим (и полностью стандартный в ископаемых версиях Мозиллы). Но учтите, что дизайны на основе разрезанных картинок в таблице могут поломаться, если вы позже перейдете на HTML5 (т.е. полностью стандартный режим).

Вы осознанно хотите получить Quirks mode

Не ставить Doctype.

Пожалуйста, не делайте этого. Верстка для Quirks mode начнет преследовать вас, ваших коллег или будущих сменщиков - когда никто больше не будет думать о совместимости с IE 5 (как уже никому нет дела до Netscape 4.x). Верстка для Quirks mode - плохая идея, искренне убеждает автор статьи.

Если вам еще нужна поддержка Windows IE 6, лучше воспользоваться условными комментариями, чем отбрасывать остальные браузеры назад, в режим обратной совместимости.

Автор не рекомендует XHTML-доктайпы, потому что отдача XHTML как text/html признана вредной . Если вы все-таки выберете XHTML-доктайп, не забывайте, что XML-декларация заставляет IE 6 (но не IE 7!) переключиться в Quirks mode.

application/xhtml+xml

Самое простое правило, которое можно предложить для страниц, отдаваемых как application/xhtml+xml - не использовать Doctype вообще . Страницы при этом, правда, не будут считаться «строго соответствующими» стандарту XHTML 1.0, но на практике это не имеет значения (см. дополнение ниже).

Сложности с IE8

У IE8 четыре режима: режим причуд IE5.5, стандартный режим IE7, «почти стандартный» режим IE8 и стандартный режим IE8.

Выбор режима определяется данными разных источников: доктайпом, метатегом, HTTP-заголовком, периодически скачиваемыми от Microsoft данными, интранет-зоной, пользовательскими настройками, настройками интранета и интерфейсной кнопкой, нажимаемой/отжимаемой пользователем (а в др. приложениях, использующих движок IE8, режим зависит еще и от настроек приложения).

Хорошая новость в том, что IE8 определяет режим «вынюхиванием доктайпа», как другие браузеры, если:

  • Сайт не посылает HTTP-заголовка X-UA-Compatible .
  • Автор сайта не указал метатега X-UA-Compatible .
  • Microsoft не внес доменное имя сайта в «черный список»

Админ интранета не внес сайт в «черный список».Пользователь не нажал кнопку Compatibility View (или иным путем не внес домен в свой пользовательский«черный список»).Сайт не в интранете.Пользователь не включил опцию «отображать все сайты как IE7».
В перечисленных случаях (кроме двух пунктов с X-UA-Compatible) IE8 реагирует на доктайп как IE7. Эмуляция IE7 называется Compatibility View.

В случаях X-UA-Compatible , IE8 ведет себя полностью иначе по сравнению с др. браузерами. См. приложение в оригинале статьи или диаграммы (//hsivonen.iki.fi/doctype/ie8-mode.pdf, //hsivonen.iki.fi/doctype/ie8-mode.png).

К сожалению, без HTTP-заголовка или метатега X-UA-Compatible , IE8 позволяет пользователю случайно сбросить ваш сайт из стандартного режима IE8 в режим эмуляции IE7, даже с правильным доктайпом. Хуже того, это может сделать и админ интранета. Кроме того, Microsoft может внести в «черный список» весь ваш домен (напр. mit.edu)!

Чтобы бороться с этим, доктайпа недостаточно, нужен HTTP-заголовок или метатег X-UA-Compatible

Простые советы по выбору HTTP-заголовка или метатега X-UA-Compatible для новых документов типа text/html , у которых уже есть доктайп, включающий стандартный или «почти стандартный» режим в других браузерах :

Ваш домен не попал в «черный список» Microsoft и для вас важнее отсутствие браузероспецифичных костылей, чем гарантия того, что пользователи не получат сайт в режиме IE7

Вам не нужен HTTP-заголовок или метатег X-UA-Compatible .

Ваш домен попал в «черный список» Microsoft, на вашем домене (как на iki.fi!) есть сайты других авторов, из-за которых пользователи могут включать Compatibility View для всего домена или вы хотите гарантии, что пользователь не включит Compatibility View для вашего сайта

Либо включите в страницу следующий элемент meta (что невалидно в HTML5): , либо установите следующий HTTP-заголовок: X-UA-Compatible: IE=Edge

Дополнение: обращение к разработчикам реализаций и авторам спецификаций, работающим с XML

Пожалуйста, не переносите «вынюхивание Doctype» в XML.

«Вынюхивание Doctype» - это решение проблемы «тегового супа», на уровне этого же «супа». Оно было придумано уже после спецификаций HTML 4 и CSS2, как эвристический способ разграничить «наследия дикого веба» от документов, чьи авторы рассчитывают на стандартное поведение.

Иногда возникают предложения, что «вынюхивание Doctype» может применяться и в XML-среде для выбора различных обработчиков, распознавания используемого словаря или включения/выключения каких-то «фич». Это плохая идея. Раздача обработчикам и активация словаря должны основываться на пространствах имен, а активация «фич» - на явных инструкциях обработки или элементах.

Вся концепция «well-formedness» была введена, чтобы сделать возможными парсинг XML без участия DTD и, более того, документы без Doctype. C формальной точки зрения, если два XML-документа имеют одну каноническую форму и приложение обрабатывает их по-разному (причем различие не вызвано намеренным отключением обработки внешних сущностей), то, вероятно, это приложение «глючит». С практической точки зрения, если ContentHandler из SAX2 «видит» два XML-документа как одинаковый контент, а приложение воспринимает их по-разному, то оно тоже скорее всего «глючит». Поскольку вы, как автор веб-страницы, не можете гарантировать, что каждый, кто парсит вашу страницу, использует XML-процессор с распознаванием внешних сущностей (даже если в некоторых браузерах это и так), вставка Doctype в XML для веба практически бессмысленна, и делается зачастую просто по привычке или «священному ритуалу». И без Doctype можно провалидировать страницу по DTD, используя функцию перекрытия DTD у валидатора от W3C, а еще лучше воспользоваться валидацией на базе RELAX NG , которая не засоряет документ ссылками на схемы. Требование наличия доктайпа только для различения чего-либо нелепо, хотя именно таково положение дел с HTML.

Кроме того, когда низкоуровневая спецификация указывает, что две вещи эквивалентны, спецификация более высокого уровня не должна пытаться придать этим вещам разное значение. Рассмотрим . Если убрать публичный идентификатор, ссылка будет по-прежнему указывать на то же DTD и, значит, Doctype значит то же самое, что и предыдущий. Должны ли они «вынюхиваться» по-разному? Мысль можно развить еще дальше. Предположим, DTD скопировано на example.com под именем foobar.dtd: . Как должно распознаваться это? Смысл ведь тот же. Наконец, DTD может быть вообще целиком вставлено внутрь Doctype!

Еще аналогия: если в программе написано #include "foo.h" , не надо привязывать никакой черной магии к имени foo.h , т.к. всегда можно скопировать его содержимое в саму программу, либо переименовать в bar.h и написать #include "bar.h" .

Для HTML и SGML такой спор не имеет смысла, т.к. браузеры не используют настоящих SGML-парсеров.