Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 155
Текст из файла (страница 155)
Сетевое программирование все символы + следует заменить на пробелы с помощью следующей операции подстановки языка Рег!: эча)--:).-) 19. которая осуществляет глобальную подстановку обычтюга пробела во всей строке вместо символа+, на что указывает флаг 9 в конце операции подстановки. 3. Специальные символы, переданные в виде своих шестнадцатеричных значений 1хк, должны быть преобразованы в соответствующие коды АБСП-символов по шестнадцатеричному коду хх: эта) -э уХ1[ 9-9а -П(21)! рвсй1 "с" , йех131) ) ту е; Последняя команда — это подстановка, которая отыскивает символ $ н следующие за ннм два символа пз множества десятичных цифр от 0 до 9 и букв от з до т (то есть из шестнадцати символов, которые используются лля обозначения чисел в шестнадцатеричной системе) и упаковывает их в один символ. Таким образом, две шестнадцатеричные цифры, каждая из которых занимает четыре бита„в результате объединя ются в один си сцпальньш символ, представимый восемью битами.
Затем этот символ зал)сияет 1хх в исходной строке. 12.2.3. Апплеты дача Существующая на данный момент структура тЧтт)гЮ с документами НТМ1., которые читаются тчеЬ-серверами и отображаются кееЬ-браузерами, имеет четыре ограничения, хотя несомненным фактом является то, что возможности ЪЧеЬ значительно превосходят первоначальные цели, поставленные физиками, работавшими в СЕВЫ. 1. При любом изменении протокола или добавлении новых протоколов все браузеры подлежат обновлению, Простое обновление сервера в соответствии с новым форматом является пелостаточным, поскольку отображение документа зависит также от браузера, расположенного на клиентской мапшне.
2. Количество информации, доступное для сервера в НТМ1;процессе, ограничено данными, задаваемыми пользователямн в элементах управления формы, создаваемой тегом <тогг> в документе НТМ1 Было бы полезно, чтобы НТМ1.-программы (например, сценарии СС1) имели доступ к большим файлам данных на локальной системе браузера'. 3. Управление взаимодействием сейчас осущсствляется па сервере с помощью встроенных в в еЬ-страницы команд НТМ1.. Это может сильно замедлить работу сервера, особенно если отображаемые страницы достаточно популярны и посещаются многими пользователями олноврсменно.
Более эффективно было бы передаю управление клиентскому браузеру, прн ш эм роль сервера была бы скорее вспомогательной. Это вьыкаэывапис авторов пе соответствует действи сел ьиоспь так как в НТМ 1. предусмптреи элемент управления формы для передачи иа сервер болыпик файлов <йтрпг суре=в1е>, поддерживаемый практически всеми популярными брачэсрами — Причеч. науч. ред. 12.2. Всемирная паутина ««ЧЖМ 559 4. Скорость отображения и еЬ-страниц ограничена скоростью передачи по линиям связи. Обычно клиентская машина большую часть времени находится в режиме ожидания информацпи, пока происходит загрузка данных. Типичная скорость этой загрузки — 33,6 кбит/с; иногда она бывает несколько выше — 56 кбит/с.
Но с увеличением количества видео, аудио или графических компонентов ~чеЬ-страниц, имеющих большие размеры, задержки во времени при загрузке значительно увеличиваются. Одним из способов решения этих проблем могло бы быть выполнение браузером некоторой части работы, которая традиционно выполняется на сервере. Вместо передачи данных НТМ1 на сервер, сервер мог бы переслать браузеру небольшую программу и выполнять это приложение прямо на клиентской машине. Это позволило бы несколько разгрузить сервер и уменьшить количество информации, передаваемой с сервера на браузер. ) ача — это язык программирования, синтаксис которого похож на синтаксис С«-+, а семантика — на семантику С«.«- и Вшайгайг.
Программы на)ача первоначально компгпируются в машинно-независимые интерпретируемые коды для виртуальной машины ) ага, для чего используется нотация, называемая байи-коды, Язык) ача был разработан как средство выполнения программ в клиентском браузере. При таком подходе безопасность браузсров является ключевым вопросом. Пользователь должен сыть уверен, что браузер не загрузит какую-либо вредную программу с другого компьютера, которая затем может разрушить всю файловую систему на клиентском компьютере.
Виртуальная машина)ача снабжена механизмом проверки, которая осугцсствляегся непрерывно во время ее работы и гарантирует безопасность загружаемых программ. Но этот вопрос, на самом деле, выходит за рамки рассмотрения языка~ага и относится к вопросам безопасности систем. Вначале компанией Воп был разработан чеЬ-браузер, названный НоЦача, который включал в себя интерпретатор)ача.
Но с 1995 г. программы на) ача обрабатываются практически всеми шеЬ-браузсрамп. Язык ~ат а добавил новые возможности для работы в сети. Если раныпе браузсры должны были «знать» обо всех протоколах и файловых форматах (например, Ьггр, йр, 90 и ан), |о браузерДача пе нуждается в этом. При активизации пшерссьшки проверяется ассоциированный с ней метод: если он недоступен, то браузер будет искать его сначала в своей локальной системе, а затем в системе сервера. Если он найден, то сервер перешлет его (п1и1 необходимости) браузсру па клиентскую машину, где оп будет выполнен как локальный апплет.
Например, если Ног)ага обнаруживает Ьсгр-гиперссылку, то сначала будет переслан с сервера соответствующий Ьггр-апплет, написанный на)ага, а затем браузер Ног)ага выполнит сто. Только те серверы, которые реализуют метод, ассоциированный с пшсрссыл кой, должны иметь апплст ) ах а. Браузер жс ничего не должен знать об этом апплете — оп должен только иметь возможность принять его при необходимости.
Это позволяет развивать возможности сети несколько более упорядоченным образом. Если какая-либо компания разработала новый протокол, то она может реализовать его на своем сервере, снабдив последний апплетох«)ача для обработки этого нового метода. Когда браузер встречает этот новый метод, он может загрузить соответствуюгцнй апплст и затем выполнить его.
Одна из особенностей 560 Глава 12. Сетевое программирование такого подхода ( или одна из опасностей, с другой точки зрения) — это то, что ком и ания может сделать эту услугу платной и превратить в источник дохода, хотя в настоящее время такая ситуация встречается довольно редко. Разумеется, некоторые считают, что доступ к сети должен быть бесплатным. Но, с нашей точки зрения, бесплатный доступ це может существовать вечно — необходимы какие-то разумные схемы оплаты. Но здесь может скрываться некий подвох — компания может использовать уже существующий протокол, но просто изменить его название и взимать плату, как если бы он был новым и требовал дополнительных затрат.
Мы надеемся, что такого не произойдет — иначе вся система Интернета может рухнуть. Развитие и популярность Интернета основаны на универсальности доступа к Интернет-ресурсам. Побочный эффект использования апплетов заключается в том, что, поскольку он выполняется на клиентской машине, у него появляется возможность доступа к файловой системе пользователя.
Виртуальная машина)аыа, в принципе, гарантирует, что этого не произойдет. Разумеется, безопасность файловой системы пользователя — одно из важнейших требований. При разработке браузеров следует быть крайне внимательными и осторожными, чтобы браузер, получивший доступ к апплету, мог распознать присутствие в нем вируса (вирус изменяет выполняемые программы на машине пользователя таким образом, что могут разрушаться файлы) нли «троянского коня» (программы, которая перехватывает управление пользовательским компьютером) и не допустить выполнение такого апплета на клиентском компьютере.
Активные апплеты. Использование сценариев СС! позволяет разработчику тееЬ-страницы организовать передачу информации в обоих направлениях между тееЬ-сервером и пользователем, использующим щеЬ-браузср, Тем пе менее область применения СС1-ст!снарисв весьма от.рацичспа, так как ограничен объем информации, который можно передать с помотцью элемента НТМ1. <тога!>. Апплеты ! аеа позволяют псролавать дополнительную информацию, так как ) а«а — это полноценный язык программирования и его возможности пе ограничены простым заполнением полей в элементе НТМЬ <! сглт>, Для обработки исходных програмв!,1ача в НТМ1 был добавлен элемент <арр1е(>: <арр1ег собе - апплет за«а и!быт=пав, Пет9пг=пои,> Результатом обработки этого элемента будет выполнение откомпилированного в промсжуточньш байт-код а!т!!лета)ача — выполняемой ) ага-прог1тамвты, находящейся в том жс каталоге, что и НТМЬ-страница.
Этот апплст будет отображать свои РезУльтаты в окне ш иРп ной пцсь пикселов и высотой пцл!а пикселов, Например, для выполнения традиционной программы Не110. йог10! можно написать программу на,! а«а и сохранить ее в файле Ье(!0.) ана: !прог! .за«а,а»С,*; /* библиотека апплетов *г' роы тс с1ава пе11о ехтепба )а«а.арр1ес.лрр1ес ( роы 1с тото ра1пыбгарптсв х1 ( иштар!гтпчСИе11о, Ног101", !00, !00); ) При компиляции этой программы компилятором 1аеа создается файл Пейо с!азы Теперь этот файл может быть выполнен при отображении щеЬ-страницы в браузе- 12.2.
Всемирная паутина 1пяйЛФ 561 ре, поэтому ои помещается в соответствующий каталог, откуда втеЬ-браузер может его прочитать. Для инициализации этого апплета используется следующий код НТМЕХ <Птн1> <Ьоеу> <арраат соса - ''Пет1о.ааааа" ю Стп - 200 Пеачпт = 200> <!арр1еа> <?Пана> Если ()К!.-адрес этой тчеЬ-страиицы передается и'еЬ-браузеру, влемеит <арр1е(> инициирует выполнение )ача-програлтмы Ье11о.с1аяк В этом случае)ача использует метод ратпт виолета лля отображения вывода из программы иа ччеЬ-страницу (подобно тому, как действует команда збонраре языка Роя!зебра).