Анализ браузера

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Анализ браузера (также известный как сниффинг браузера) — это набор методов, используемых на веб-сайтах и веб-приложениях для определения веб-браузера, который использует посетитель, и предоставления посетителю контента, соответствующего браузеру. Он также используется для обнаружения мобильных браузеров и отправки им веб-сайтов, оптимизированных для мобильных устройств. Эта практика иногда используется, чтобы обойти несовместимость между браузерами из-за неправильной интерпретации HTML, каскадных таблиц стилей (CSS), или объектной модели документа. Хотя Консорциум Всемирной паутины поддерживает актуальные центральные версии некоторых из наиболее важных веб-стандартов в виде рекомендаций, на практике ни один разработчик программного обеспечения не разработал браузер, который точно соответствует этим стандартам; реализация других стандартов и протоколов, таких как SVG и XMLHttpRequest, также различается. В результате разные браузеры отображают одну и ту же страницу по-разному, поэтому было разработано сканирование браузера для обнаружения веб-браузера, чтобы обеспечить согласованное отображение контента.

Методы анализа[править | править код]

Client-side sniffing[править | править код]

Веб-страницы могут использовать языки программирования, такие как JavaScript, которые интерпретируются User agent, а результаты отправляются на веб-сервер. Например:

var isIEBrowser = false;
if (window.ActiveXObject) {
    isIEBrowser = true;
}

// Or, shorter:
var isIE = (window.ActiveXObject !== undefined);

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

Стандартный метод идентификации браузера[править | править код]

Веб-сервер взаимодействует с клиентом, используя протокол связи, известный как HTTP или протокол передачи гипертекста, который указывает, что клиент отправляет серверу информацию о браузере, используемом для просмотра веб-сайта, в строке User agent’a.

Анализ на стороне сервера[править | править код]

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

Проблемы и стандарты[править | править код]

Многие веб-сайты используют анализ браузера, чтобы определить, может ли браузер посетителя использовать определённые функции (такие как JavaScript, DHTML, ActiveX, или каскадные таблицы стилей), и отображать страницу с ошибкой, если определённый браузер не исполняет эти функции. Однако практически невозможно учесть огромное разнообразие браузеров, доступных пользователям. Как правило, веб-дизайнер, использующий сниффинг браузера, чтобы определить, какую предоставить страницу, будет тестировать для трех или четырёх самых популярных браузеров и предоставлять контент, адаптированный для каждого из них. Если пользователь использует непроверенный User agentt, нет гарантии, что будет обслуживаться пригодная для использования страница; таким образом, пользователь может быть вынужден либо сменить браузер, либо избегать таких страниц. Консорциум Всемирной паутины, устанавливающий стандарты построения веб-страниц, рекомендует, чтобы веб-сайты проектировались в соответствии с его стандартами и были приспособлены для «изящного отказа» при отображении в браузере, который не может работать с конкретным стандартом.

См. также[править | править код]

Примечания[править | править код]