32. Клиентское ПО в WWW. Действия выполняемы браузером. Способы расширения возможностей браузеров.

URL состоит из трех частей: имени протокола (http), DNS-имени машины, на которой расположена страница (www. abcd.com), и (обычно) имени файла, содержащего эту страницу (products.html). Между щелчком пользователя и отображением страницы происходят следующие события. Когда пользователь щелкает мышью на гиперссылке, браузером выполняется ряд действий, приводящих к загрузке страницы, на которую указывает ссылка. Предположим, пользователь, блуждая по Интернету, находит ссылку на документ, рассказывающий про интернет-телефонию, а конкретно — на домашнюю страницу ITU, расположенную по адресу http://www.itu.org/home/index.html. Рассмотрим каждое действие, происходящее после выбора этой ссылки.

1) Браузер определяет URL (по выбранному элементу страницы).

2) Браузер запрашивает у службы DNS IP-адрес www.itu.org.

3) DNS дает ответ 156.106.192.32.

4) Браузер устанавливает TCP-соединение с 80-м портом машины 156.106.192.32.

5) Браузер отправляет запрос на получение файла /home/index..html.

6) Сервер www.itu.org высылает файл /home/index.html.

7) TCP-соединение разрывается.

8) Браузер отображает весь текст файла /home/index.html.

9) Браузер получает и выводит все изображения, прикрепленные к данному файлу.

10) Многие браузеры отображают текущее выполняемое ими действие в строке состояния внизу экрана.

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

 11) Для отображения каждой новой страницы браузер должен понять ее формат. Чтобы все браузеры могли отображать любые страницы, они пишутся на стандартизованном языке HTML, описывающем веб-страницы. Несмотря на то, что браузер, по сути дела, представляет собой интерпретатор HTML, большинство браузеров оснащаются многочисленными кнопками и функциями, облегчающими навигацию по Всемирной паутине. У многих браузеров есть кнопки для возврата на предыдущую страницу и перехода на следующую страницу (последняя доступна только в том случае, если пользователь уже возвращался назад), а также кнопка для прямого перехода на домашнюю страницу пользователя. Большинство браузеров поддерживают в меню команды для установки закладки на текущей странице и отображения списка закладок, что позволяет попадать на любую страницу при помощи всего одного щелчка мышью. Страницы также могут быть сохранены на диске или распечатаны на принтере. Кроме того, доступны многочисленные функции управления отображением страницы и установки различных настроек пользователя. Помимо обычного текста (не подчеркнутого) и гипертекста (подчеркнутого), веб-страницы могут также содержать значки, рисунки, чертежи и фотографии. Все они могут быть связаны ссылкой с другой страницей. Щелчок на элементе, содержащем ссылку, также вызовет смену текущей страницы, отображаемой браузером. С большими изображениями, такими как фотографии или карты, может быть ассоциировано несколько ссылок, при этом следующая отображаемая страница будет зависеть от того, на каком месте изображения произведен щелчок мышью. Далеко не все страницы написаны исключительно с применением HTML. Например, страница может состоять из документа в формате PDF, значка в формате GIF, фотографии в JPEG, звукозаписи в формате МРЗ, видео в MPEG или чего-то еще в одном из сотни форматов. Поскольку стандартные HTML-страницы могут иметь ссылки на любые файлы, у браузера возникает проблема обработки страницы, которую он не может интерпретировать. Вместо того чтобы наращивать возможности и размеры браузеров, встраивая в них интерпретаторы для различных типов файлов (количество которых быстро растет), обычно применяется более общее решение. Когда сервер возвращает в ответ на запрос какую-либо страницу, вместе с ней высылается некоторая дополнительная информация о ней. Эта информация включает MIME-тип. Страницы типа text/html выводятся браузером напрямую, как и страницы некоторых других встроенных типов. Если же для данного MIME-типа внутренняя интерпретация невозможна, браузер определяет, как выводить страницу, по своей таблице MIME-типов. В данной таблице в соответствии с каждым типом ставится программа просмотра. Существуют два способа отображения: с помощью подключаемого модуля (plug-in) или вспомогательных приложений. Подключаемый модуль представляет собой особый код, который браузер извлекает из специального каталога на жестком диске и устанавливает в качестве своего расширения (рис. 5.4,а). Поскольку подключаемые модули работают внутри браузера, у них есть доступ к текущей странице, вид которой они могут изменять. После завершения своей работы, обычно это связано с переходом пользователя на другую страницу, подключаемый модуль удаляется из памяти браузера. Каждый браузер имеет набор процедур, которые должны реализовывать все подключаемые модули. Это нужно для того, чтобы браузер мог обращаться к последним. Например, существует стандартная процедура, с помощью которой базовый код браузера передает подключаемому модулю данные для отображения. Набор этих процедур образует интерфейс подключаемого модуля и является специфичным для каждого конкретного браузера. Кроме того, браузер предоставляет подключаемому модулю определенный набор своих процедур. Среди них в интерфейс браузера обычно включаются процедуры распределения и осво­бождения памяти, вывода сообщений в строке статуса браузера и опроса параметров браузера. Перед использованием подключаемого модуля его нужно установить. Этот процесс подразумевает, что пользователь копирует файл установки с веб-сайта производителя модуля. В Windows он обычно представляет собой самораспаковывающийся архив ZIP с расширением .ехе. Если дважды щелкнуть на таком файле, запускается небольшая программа, включенная в начало архива. Она распаковывает подключаемый модуль и копирует его в соответствующий каталог, известный браузеру. Затем она регистрирует MIME-тип, обрабатываемый модулем, и ассоциирует этот тип с модулем. В системах UNIX установочный файл зачастую представляет собой основной сценарий, осуществляющий копирование и регистрацию. Вторым способом расширения возможностей браузера является использование вспомогательных приложений. Вспомогательное приложение — это полноценная программа, работающая как отдельный процесс (рис. 5.4,б). Поскольку она никак не связана с браузером, между ними отсутствует какой бы то ни было интерфейс. Вместо этого обычно вспомогательное приложение вызывается с параметром, представляющим собой имя временного файла, содержащего данные для отображения. Получается, что браузер можно настроить на обработку практически любого типа файлов, не внося в него никаких изменений. Современные веб-серверы часто содержат сотни комбинаций типов и подтипов файлов. Новые типы файлов появляются вся-кий раз при установке новых программ. Вспомогательные приложения не обязательно связаны только с MIME-типом application (приложение). Например, Adobe Photoshop будет работать с image/x-photoshop, a RealOne Player может поддерживать audio/mp3. В Windows каждая устанавливаемая на компьютер программа регистрирует типы, которые она хочет поддерживать. Такой механизм приводит к конфликту, когда несколько программ могут обрабатывать один и тот же подтип, например, video/mpg. Конфликт разрешается следующим образом: программа, которая регистрируется последней, затирает своей записью существующую ассоциацию (тип MIME, вспомогательное приложение) для тех типов, которые она готова обрабатывать самостоятельно. Следствием этого является то, что каждая устанавливаемая программа может изменить метод отображения браузером некоторых типов. В UNIX этот процесс обычно не является автоматическим. Пользователь должен вручную обновлять конфигурационные файлы. Такой подход приводит к уменьшению числа неожиданных сюрпризов, но при этом у пользователя появляются дополнительные заботы. Браузеры могут работать и с локальными файлами, не запрашивая информацию с удаленных серверов. Поскольку локальные файлы не сообщают свои MIME-типы, браузеру нужно каким-то хитрым образом определить, какой подключаемый модуль или вспомогательное приложение использовать для типов, отличных от встроенных (таких, как text/html или image/jpeg). Для поддержки локальных файлов вспомогательные модули и приложения должны быть ассоциированы как с расширениями файлов, так и с типами MIME. При стандартных настройках попытка открыть файл foo.pdf приведет к его открытию в Acrobat, а файл bar.doc будет открыт в Word. Некоторые браузеры для определения типа MIME используют не только данные о типе MIME, но и расширение файла и даже данные, взятые из самого файла. В частности, Internet Explorer по возможности старается ориентироваться на расширение файла, а не на тип MIME. Здесь также возможны конфликты, поскольку многие программы страстно желают поддерживать, например, .mpg. Профессиональные программы при установке обычно выводят флажки, позволяющие выбрать поддерживаемые типы MIME и расширения. Таким образом, пользователь может выбрать то, что ему требуется, и таким образом избежать случайного затирания существующих ассоциаций. Программы, нацеленные на массового потребителя, полагают, что большинство пользователей понятия не имеют о типах MIME и просто захватывают все что могут, совершенно не обращая внимания на ранее установленные программы. Расширение возможностей браузера по поддержке новых типов файлов — это удобно, но может также привести к возникновению некоторых проблем. Когда Internet Explorer получает файл с расширением ехе, он думает, что это исполняемая программа и никаких вспомогательных средств для нее не требуется. Очевидно, следует просто запустить программу. Однако такой подход может оказаться серьезной дырой в системе защиты информации. Злоумышленнику требуется лишь создать нехитрый сайт с фотографиями, скажем, знаменитых киноактеров или спортсменов и поставить ссылки на вирусы. Один-единственный щелчок мышкой на фотографии может в этом случае привести к запуску непредсказуемой и, возможно, опасной программы, которая будет действовать на машине пользователя. Для предотвращения подобных нежелательных ситуаций Internet Explorer можно настроить на избирательный запуск неизвестных программ, однако не все пользователи в состоянии справиться с настройкой браузера. В UNIX похожая проблема может возникнуть с основными сценариями, однако при этом требуется, чтобы пользователь сознательно стал устанавливать вспомогательную программу. К счастью, это процесс довольно сложный, и «случайно» установить что-либо практически невозможно (немногие могут сделать это и преднамеренно).

Hosted by uCoz