Р.Л. Смелянский - Компьютерные сети. Том 2. Сети в ЭВМ (1130083), страница 51
Текст из файла (страница 51)
Предтечей языка НТМЬ является прикладной программный язык разметки„базирующийся на модели стандартного обобщенного языка разметки 8ОМЬ (8гапг)агд Оепега!!хек Маг!гцр Ьапйцаде), описанного в станларте !БР 8879. Язык 8ОМЬ представляет собой систему, которая в течение многих лет применялась специалистами по документированию как средство разметки технических документов. В качестве языка форматирования в НТМЬ используются декларации 8ОМЬ и метод определения типа документа (Росшпеп! Туре Рейв!г!оп) — РТР. Язык НТМ1 решает задачи унифицированного представления документов в разных операционных системах на разных платформах и в разных сетях, обеспечивая их широкую доступность.
Как уже говорилось, эта проблема была давно осознана, а для компьютерных сетей бьщо предложено ее решение в рамках эталонной модели О81 180 (см. гл. 1). В этой модели проблема решалась на уровне прелставления данных, для чего был разработан язык АЯМ (АЬзггас! бупгах Хогагюп) [19, 43], закрепленный в международном стандарте 18 8824. Этот язык является основой языка 8М1, используемого для представления данных в базе М1В протокола 8!9МР (см. подразд.
4.2.2). Однако язык АБХ, как и модель 081 18О, не получил широкого распространения, чего нельзя сказать о языке НТМ1.. Вначале НТМЬ был просто языком форматирования гипертекстовых документов. Элементы формата ограничивались заголовками, абзацами и небольшим набором форматов текста, таких как полужирный шрифт или курсив.
Такие элементы формата называются тегами, представляющими собой ключевые слова, заключенные в угловые скобки. Например, чтобы выделить текст курсивом, необходимо заключить его в теги; <1>текст<Я>. Стандарт НТМЬ 4.0 добавил к первоначальному языку ряд новых мощных функций и превратил ограниченный язык задания формата в полноценный инструмент структурирования. Полностью возможности НТМЬ были осознаны, когда появилась возможность смотреть гипертекст не только в текстовом браузере, но и с помощью графического пользовательского интерфейса. Это случилось в !993 г., когда появился на свет браузер Мозань В каждой версии спецификации НТМ Ь изменения все более углублялись: от статической информации до динамичного, развитого дизайна. Язык НТМЬ 4.0 был стандартизован консорциумом %3С (см, подразд.
1.2), что существенно ограничило деятельность компаний (М1- сгозой, Хегзсаре) по расширению его спецификации своим синтаксисом. Деятельность консорциума %'3С в настоящее время состоит в наблюдении за стандартизацией НТМЬ, а также в наблюдении за 2!8 использованием различных протоколов и языков, связанных с ЪуеЬ, включая ХМЬ, СББ, НТТР, ЫКЬ, РТР, )х)Ь!ТР и ТОМЬ (3!!. Каскадные таблицы стилей СИЯ.
Основной задачей четвертой версии стандарта НТМЬ было отделение структуры и текста документа от его представления и стиля, т,е. большая часть стандарта НТМЬ 4.0 посвящена тому, как вынести из документа элементы прелыдущих версий языка, используемых для представления или определения стиля информации, в отдельный блок. Таким образом появились стили и язык описания стилей СЫ (Сазове Ь!у!е БЬеегз) Идея использования таблиц стилей СВВ очень проста. Если раньше в НТМЬ необходимо было прямо в документе указывать, как должен выглядеть тот или иной элемент, то при использовании описаний СВВ такие указания выносятся в отдельный блок, который й; может загружаться в виде отдельного файла (как директива !пс1иде в языке С!С.н.) Очевидны следующие преимущества такого подхода.
Во-первых, значительно облегчается изменение внешнего вида сайта и отдельных ,!б его элементов, т.е. достаточно изменить определение соответствующего стиля в единственном СВВ-файле и эти изменения распространятся на весь сайт. Во-вторых уменьшается размер документов, что особенно заметно на «красивых» страницах, а это способствует их скорейшей загрузке на клиентские машины [21) Набор технологий РНТМЬ для создания интерактивных страниц. По мере развития %%% стало очевидно, что концепция о неизменности НТМЬ-страницы после ее загрузки с сервера сушественно ограничивает возможности представления и логику обработки информации.
Например, эта концепция не поддерживала такой привычный интерфейс навигации по т«еЬ-страницам, как «выпадающие» меню. Кроме того, вся логика по обработке информации реализовывалась на сервере, значит, для проверки корректности данных, введенных клиентом в формы, необходимо было отправить запрос на сервер, что существенно замедляло скорость работы пользователя в %%%. Перечисленные нелостатки НТМ1.
стали предпосылками появления концепции РНТМЬ (Рупаппс НТМЬ), которая не была оформлена в виде стандарта и которую не следует рассматривать как новую спецификацию языка НТМЬ. В концепции РНТМЬ определяется набор технологий, позволяющих браузеру динамически изменять загруженные НТМ1.-документы в ответ на пользовательские действия без взаимодействия с %еЬ-сервером. Таким образом, часть логики работы с НТМЬ-документом выносилась на сторону клиента, т.е. на абонентскую машину Основу концепции РНТМЬ составляют следующие основные компоненты: язык НТМЬ, язык описания каскадных таблиц стилей С5В, скрнптовый язык, который интерпретируется браузером (например, )ахабспр1, »Ьзспрг), и объектная модель НТМ1 -документов — РОМ.
219 Язык НТМЬ был расширен конструкциями специального типа— событиями. Так, с любой структурной единицей документа можно связать событие и обработчика этого события. Например, для некоторой таблицы можно указать, что по нажатию пользователем левой кнопки мыши над этой таблицей, она окрасится в цвет, код которого введен в специальное текстовое поле на этой же странице. Обработчики таких событий реализуются с помощью специального кода, называемого скриптом, который и интерпретирует браузер. Самым распространенным языком реализации этих обработчиков является Загабсг!рп Однако остается вопрос; как программа на языке Заха5спр! сможет поменять структуру или представления загруженного НТМЬ-документа? Ведь в этом случае браузер должен предоставить обработчику некоторый интерфейс для доступа к НТМ1— документу.
Браузеров много, и вряд ли их производители договорятся о едином интерфейсе. Поэтому консорциум Ъ'ЗС разработал стандарт, т.е. объектную модель НТМЬ-документа — РОМ (Роспщеп! ОЬ)ест Моде!), являющуюся четвертой и последней составляющей концепции РНТМЬ, и интерфейс, который должен использоваться для работы с этой моделью [49].
,Зава-апплеты и технология Г!авЬ Концепция вынесения логики работы с УгеЬ-сервера на сторону клиента не остановилась в своем развитии на концепции РНТМ! . Дело в том, что Зачабсг!рг и другие языки, интерпретируемые браузером, имеют ограниченные возможности по сравнению с интерпретируемыми языками общего назначения, например такими как !ага. Понимая это, компания Вип М!сгозузгегпз разработала технологию Заха-апплетов. Зача-апплет — это прикладная программа на языке Зача в форме байт-кола.
В отличие от программ на языке Зачабсг!рй которые интерпретируются браузером, Зава-апплет выполняст виртуальная !ага-машина (ЗХгМ), которая и является интерпретатором байт-кода и которую устанавливают на хосте отдельно. Зача-апплеты были внедрены в первой версии языка Зача в 1995 г. Зама является языком общего назначения, а следовательно, необходимо предпринимать специальныс меры по обеспечению безопасного выполнения )ага-апплетов на компьютерах пользователей, ведь загруженный из Интернета код вместе с НТМЬ-страницей может обладать как полезными, так и вредными функциями.
Для обеспечения безопасности пользователей апплеты выполняются в специальной песочнице (запг)Ьох), которая ограничивает взаимодействие байт-кода Зава с окружением; запрещает операции считывания и записи файлов, запуск других приложений на компьютере пользователя, а сетевой доступ из апплета допускает только к тому хосту, с которого он был загружен.
220 Апплету разрешено считывать значения параметров (цвета, шрифты, файлы с графическими изображениями и т.д.) с содержащей его 'ччеЬ-страницы н в соответствии с этими параметрами изменять свое поведение. Кроме того, параметры апплета можно изменять динамически )25). Альтернативной технологией для вынесения логики на сторону клиента стали приложения АдоЬе Г!ааЬ, которые в настоящее время являются наиболее популярным расширением функциональности языка НТМЬ. Е!ав!пприложения реализуются на языке Асг)опбспрг !последняя версия 3.0), являющемся объектно-ориентированным языком программирования и одним из диалектов стандарта ЕСМАбспрг, который добавляет интерактивность, обработку данных и многое другое в содержимое этих приложений. Язык Асг)опбспрт компилируется в байт-код и исполняется виртуальной машиной Асг!опбспр! ч!ппа! Маей!пе. В основе технологии Г1ааЬ лежит векторный морфинг, т.
е, плавное «перетекание» одного ключевого кадра в другой, что позволяет делать достаточно сложные мультипликационные сцены, задавая лишь несколько ключевых кадров для каждого персонажа. Технология Р1ааЬ в основном используется для написания игр, небольших полуинтсрактивных анимаций и для красивого оформления рекламы, т.е.
в сфере развлечений и дизайна. Для серьезных ЪчеЬ-приложений, где взаимодействие с пользователем должно быть без ущерба красоте, обычно используется язык )ачаЗсг)рг либо вообще не используются никакие технологии кроме тех, которые работают при любых настройках безопасности в браузерах (НТМЬ, Сбб). НТТР-протокол НТТР является текстовым протоколом, а это означает, что Ы1рзапросы можно послать зчеЬ-серверу.
Общий вид НТТР-запроса следующий: запр = и тод Зг цдт-Запроса Зт вер -яттр Сны Заголовок-Запроса Сдьт Заголовок-Запроса СКЪГ Заголовок-Запроса СШ т скък !тело запроса) Первая строка этого сообщения указывает метод, который должен быть применен к запрашиваемому ресурсу, идентификатор ресурса и используемую версию протокола. В НТТР-запросе могут использоваться следующие методы: 221 Метод = " ЕЕТ " ~ " ЯЕАО" ~ " РОТ " ~ " РОЕТ " ~ " ОЕЬЕТЕ " " Ь|МК " ~ "УНЫМК " ~ донолнительнг Я метод Метод ОЕТ служит для получения любой информации, идентифицированной Г)К1-запросом.
Если Г)К!-запрос ссылается на процесс, выдающий данные, в качестве ответа будут выступать данные, сгенерированные указанным процессом 1если они не являются выходными данными процесса), а не код самого процесса. Если в заголовке запроса присутствовало поле «1Г-Мог11Т1ед-%псе», то в ответ тело запрашиваемого ресурса передается только, если ресурс изменялся после даты, указанной в заголовке «1Г-Моййей-В1псе», в соответствии со следующим алгоритмом: ° если код статуса ответа на запрос будет отличаться от «200 ОК» или если дата, указанная в поле заголовка «1Г-МойТ1ед-%псе», некорректна, ответ будет идентичен ответу на обычный запрос ОЕТ; ° если после указанной даты ресурс изменялся, ответ будет также идентичен ответу на обычный запрос ОЕТ; ° если ресурс не изменялся после указанной даты, сервер вернет код статуса «304 Хог Моо|Т1ео».