tanenbaum_seti_all.pages (525408), страница 186
Текст из файла (страница 186)
д. Каждая новая страница, на которую указывает ссылка, может располагаться как па той же самой ма~нине, что и первая страница, так и на компьютере, расположенном на противоположном конце Земли. Для пользователя зто не заметно. Браузер добывает запрашиваемые страницы без участия пользователя. Если пользователь вернется к странице, на которой он уже был, то использованные им ссылки мвут быть выделены другим цветом (или подчеркнуты пунктиром), что позволяет отличать их от тех, на которых пользователь еще не щелкал мышью. Обратите внимание что щелчок мышью на любой не подчеркнутой строке (например, Стллриз1л/оплаг(ол) пе вызовет никакого эффекта, Это просто текст, не связанный пи с какой страницей. Основной принцип работы Паутины показан па рис. 7.7.
Браузер отображает веб-страницу на клиентской машине. Когда пользователь щелкает на строке, которая является ссылкой па страницу, расположенную на сервере абст(сот, браузер следует по этой гиперссылке. Реально при этом на абссссотл отправляется служебное сообщение с запросом страницы. Получив страницу, браузер показывает ее. Если на этой странице содержится гиперссылка на страницу с сервера ззтхсотл, то браузер обращается с запросом к лухсот, и так далее до бесконечности. Всемирная паутина (ФВплг) 697 выборе элемента браузер следует по гиперссылкс и получает с сервера запрашиваемую страницу. Следовательно, гиперссылка внутри документа должна быть устроена так, чтобы она могла указывать на любую страницу Всемирной паутины.
Страницы именуются с помощью ЫКЬ (РпЫогш Кезопгсе Ьосагог — унифицированный указатель информационного ресурса). Типичный указатель выглядит так: Ьйр://агав.аЬсо.сот/ргобос1з. Ыгпд Более подробно про унифицированные указатели 1) КЬ будет рассказано далее в этой главе. Пока что достаточно знать, что ()КЬ состоит из трех частей; имени протокола (Бггр), РХ3-имени машины, на которой расположена страница (ааа. аьсг1.сош), и (обычно) имени файла, содержащего зту страницу (ргодисй.Бпл/), Между щелчком пользователя и отображением страницы происходят следующие события. Когда пользователь щелкает мышью на гиперссылке, браузером выполняется ряд действий, приводящих к загрузке страницы, на которую указывает ссылка.
Предположим, пользователь, блуждая по Интернету, находит ссылку на локумент, рассказывакпций про интернет-телефонию, а конкретно — па домашнюю страницу 1Т(), расположенную по адресу йггр://вела/пи.ог9/Ьогпе/~паек.дггп!. Рассмотрим каждое действие, происходящее после выбора зтой ссылки. 1. Браузер определяет ()КЬ (по выбранному злсменту страницы). 2. Браузер запрашивает у службы РХ3! Р-адрсс плвшуги.о~3. 3. РХ3 дает ответ 156.106.192.32. 4. Браузер устанавливает ТСР-соединение с 80-м портом машины 156.106.192.32.
5. Браузер отправляет запрос на получение файла/Боте/~иг/ех Бгглб 6. Сервер швявлги.огд высылает файл /Боте/тггвпЫт!. 7. ТСР-соединенис разрывается. 8. Браузер отображает всеь текст файла/Боте/ипех.йтй 9. Браузер получает и выводит все изображения, прикрепленные к данному файлу'. 10. Многие браузсры отображают текущее выполняемое ими действие в строке состояния внизу экрана. Это позволяет пользователю понять причину низкой производительности: например, не отвечает служба РХ3 илн сервер или просто сильно перегружена сеть при передаче страницы. 11. Для отображения каждой новой страницы браузср должен понять ее формат.
Чтобы все браузсры могли отображать любые страницы, они пишутся на стандартизованном языке НТМЬ, описывающем всб-страницы. Более детально мы Рассмотрим его далее. Несмотря па то что браузер,по сути дела, представляет собой интерпретатор НТМ1„большинство браузеров оснащаются многочисленными кнопками и функциями, облегчающими навигацию по Всемирной паутине. У многих браузеров есть кнопки для возврата па предыдущую страницу и перехода на следующую страницу (последняя доступна только в том случае, сели пользователь уже возвращался назад), а также кнопка для прямого перехода на домашнюю страницу 698 Глава 7. Прикладной уровень пользователя. Большинство браузеров полдерживают в меню команды для установки закладки на текущей странице и отображения списка закладок, что позводяет попадать на любую страницу при помощи всего одного щелчка мышью.
Страницы также могут быть сохранены на диске или распечатаны на принтере. Кроме того, доступны многочисленные функции управления отображением страницы и установки различных настроек пользователя. Помимо обычного текста (не подчеркнутого) и гипертекста (подчеркнутого), веб-страницы могут также содержать значки, рисунки, чертежи и фотографии. Все они могут быть связаны ссылкой с другой страницей, Щелчок на элементе, содержащем ссылку, также вызовет смену текущей страницы, отображаемой браузером. С большими изображениями, такими как фотографии или карты, может быть ассоциировано несколько ссылок, при этом следующая отображаемая страница будет зависеть от того, на каком месте изображения произведен щелчок мышью. Далеко не все страницы написаны исключительно с применением НТМ1..
Например, страница может состоять из документа в формате Р1)Р, значка в формате С1Р, фотографии в ПРЕС, звукозаписи в формате МРЗ, видео в МРЕС или чего-то еще в одном из сотни форматов. Поскольку стандартные НТМ1.-страницы могут иметь ссылки на любые файлы, у браузера возникает проблема обработки страницы, которую он не может интерпретировать. Вместо того чтобы наращивать возможности и размеры браузеров, встраивая в них интерпретаторы для различных типов файлов (количество которых быстро растет), обычно применяется более общее решение.
Когда сервер возвращает в ответ на запрос какую-либо страницу, вместе с ней высылается некоторая дополнительная информация о ней. Эта информация включает М1МЕ-тип страницы (см. табл. 7,7). Страницы типа гехт/Мт! выводятся браузером напрямую, как и страницы некоторых других встроенных типов.
Если же для данного М1МЕ- типа внутренняя интерпретация невозможна, браузер определяет, как выводить страницу, по своей таблице М1МЕ-типов. В данной таблице в соответствие каждому типу ставится программа просмотра. Существуют два способа отображения: с помощью подключаемого модуля (р!пй-1п) или вспомогательных приложений. Подключаемый модуль представляет собой особый код, который браузер извлекает из специального каталога на жестком диске и устанавливает в качестве своего расширения, как показано на рис.
7.8, а. Поскольку подключаемые модули работают внутри браузера, у них есть доступ к текущей странице, вид которой они могут изменять. После завершения своей работы (обычно это связано с переходом пользователя на другую страницу) подключаемый модуль удаляется из памяти браузера, Каждый браузер имеет набор процедур, которые должны реализовывать все подключаемые модули. Это нужно для того, чтобы браузер мог обращаться к последним.
Например, существует стандартная процедура, с помощью которой базовый код браузера передает подключаемому модулю данные для отображения. Набор этих процедур образует интерфейс подключаемого модуля и является специфичным для каждого конкретного браузера. Кроме того, браузер предоставляет подключаемому модулю определенный набор своих процедур. Среди них в интерфейс браузера обычно включаются про- Всемирная паутина (ууууууу) 699 цедуры распределения и освобождения памяти, вывода сообщений в строке ста- туса браузера и опроса параметров браузера. Клиентская машина Кпиентская навина Интерфейс браузе (испопьзуется подкпючаемым модулем) Интерфейс подкпючаемого модупя (испопьзует браузером) Процесс 1 Процесс 2 Рис.
7.8. Браузер с подключаемым модулем (а), вспомогательное припожение (б) Перед использованием подключаемого модуля его нужно установить. Этот процесс подразумевает, что пользователь копирует с веб-сайта производителя модуля файл установки. В Ж(пс(сиз он обычно представляет собой самораспаковывающийся архив 21Р с расширением .ехе, Если дважды щелкнуть на таком файле, запускается небольшая программа, включенная в начало архива. Она распаковывает подключаемый модуль и копирует его в соответствующий каталог, известный браузеру.
Затем она регистрирует М1МЕ-тнп, обрабатываемый модулем, и ассоциирует этот тип с модулем, В системах 1)Х1Х установочный файл зачастую представляет собой основной сценарий, осуществляющий копирование и регистрацию. Вторым способом расширения возможностей браузера является использование вспомогательных приложений. Вспомогательное приложение — это полноценная программа, работающая как отдельный процесс. Это показано на рис. 7.8, б.
Поскольку она никак не связана с браузером, между ними отсутствует какой бы то ни было интерфейс. Вместо этого обычно вспомогательное приложение вызывается с параметром, представляющим собой имя временного файла, содержащего данные для отображения. Получается, что браузер можно настроить на обработку практически любого типа файлов, не внося в него никаких изменений. Современные веб-серверы часто содержат сотни комбинаций типов и подтипов файлов. Новые типы файлов появляются всякий раз при установке новых программ.
Вспомогательные приложения не обязательно связаны только с М1МЕ-типом аррйсапоп (приложение). Например, Аг)о)те РЬосозЬор будет работать с гтрк/хрйо~озйо)г, а Веа)Опе Р1ауег может поддерживать аийо/трЗ. В Ъ'1пг(отта каждая устанавливаемая на компьютер программа регистрирует типы, которые она хочет поддерживать. Такой механизм приводит к конфликту, когда несколько программ могут обрабатывать один и тот же подтип, например, эгЫео/гпрй.