Структура, принципы функционирования и технологии глобальной информационной сети
но как только страница загружена, сценарий не может изменить HTML-код. Как же сделать Web-страницы интерактивными, если их невозможно изменить в ответ на действия пользователя?Динамический HTML, частично реализованный в Netscape 4 и в большей степени в Internet Explorer 4, устраняет эти ограничения. С использованием динамического HTML сценарии могут вставлять блоки HTML, удалять и заменять их или изменять свойства объектов после отображения страницы на экране. Браузер автоматически обновляет новые свойства и (или) новый HTML-код.
Динамический HTML строится на двух принципах.
Объектная модель документа (DOM) описывает способ организациии названия объектов в браузере, а также определяет, какие объекты и свойства могут быть изменены и какие значения они могут принимать.
Событийная модель описывает способ передачи управления сценариям - какие действия посылают сценарии на выполнение.
Слабость динамического HTML состоит в том, что Internet Explorer и Netscape Navigator поддерживают очень разные модели документов и модели событий. Отчасти это следствие «войны браузеров», а отчасти связано с тем, что браузеры разрабатывались в разное время. В любом случае окончательным результатом следует считать разработку страниц с динамическим HTML, совместимых и с IE, и с Netscape.
За информацией о динамическом HTML обратитесь на сайт Microsoft: msdn.microsoft/workshop/author/dhtml/reference/dhtml_reference_entry.asp
Netscape: developerscape/library/documentalion/communicator/dynhtml/index.htm
В Internet Explorer почти все объекты на странице - ссылки, изображения, параграфы текста и т.д. могут реагировать на широкий спектр событий. Netscape Navigator поддерживает намного меньше событий, и при этом только для ссылок и форм.
2.3.9. Java-апплеты
Практически все современные браузеры способны отображать и выполнять Java-апплеты — специальные Java-приложения, которые пользователь получает в составе Web-страницы. Эти приложения нередко включаются в состав Web-страниц с целью добавления функциональности, которую сложно или невозможно реализовать с помощью скриптовых языков. Апплеты могут выполняться на всех платформах, для которых доступна виртуальная Java-машина.
Апплеты обычно создаются в соответствии с правилами, оговаривающими период их жизни и способы взаимодействия со своим окружением. Чаще всего эти способы весьма ограниченны (например, такие операции, как считывание и запись файлов, по умолчанию для апплетов запрещены; если же подобные операции необходимы, разрешения на их выполнение для конкретных апплетов и конкретных файлов описываются на клиентском компьютере; сетевой доступ из апплета возможен только к тому компьютеру, с которого он был загружен; запуск других приложений на компьютере пользователя из апплетов невозможен). Однако апплет способен считывать значения параметров (например, цвета, шрифтов, файлов с графическими изображениями, используемыми при выполнении апплета) с содержащей его Web-страницы и в соответствии с этими параметрами изменять свое поведение. Кроме того, параметры апплета можно менять динамически из кода на скриптовых языках, содержащихся в составе той же страницы.
Отметим, что, поскольку апплеты реализуют выполнение кода на компьютере клиента, они в определенной степени являются потенциально опасным содержимым. Именно поэтому все современные браузеры обладают доступными пользователю средствами ограничения возможностей выполнения апплетов.
2.3.10. Элементы управления ActiveX
Некоторые из современных браузеров (в частности, Microsoft Интернет Explorer) могут служить контейнерами для элементов управления ActiveX — специальных COM-серверов, выполняющихся в адресном пространстве браузера и также получаемых в составе Web-страницы.
С помощью элементов управления ActiveX, как и посредством Java-апплетов, можно реализовать любую функциональность, в том числе и неблагоприятную для компьютера пользователя, при этом, в отличие от Java-апплетов, при выполнении элементов управления ActiveX в общем случае нет никаких ограничений на доступ к файлам и иным ресурсам операционной системы и сети, а код, содержащийся в них, выполняется от имени загрузившего их пользователя. Как и Java-апплеты, элементы управления ActiveX могут считывать свои свойства с содержащей их страницы; кроме того, свойства элемента управления ActiveX можно менять динамически из кода на скриптовых языках, содержащихся в составе той же страницы; в том же коде можно обрабатывать события, возникающие в таких элементах управления.
Естественно, Microsoft Интернет Explorer обладает средствами ограничения возможностей выполнения элементов управления ActiveX, в том числе управления ими из кода на скриптовых языках. Однако для контроля безопасности их выполнения имеется еще одно средство, называемое электронной цифровой подписью. Цифровая подпись помещается внутрь элемента управления ActiveX, для чего требуется наличие соответствующего электронного сертификата. Электронная подпись, помимо сведений о фирме-производителе, содержит и другую полезную информацию. Так, например, если файл с элементом управления ActiveX после добавления электронной подписи был изменен, то об этом будет немедленно сообщено перед запуском такого элемента управления — при добавлении подписи к элементу управления ActiveX происходит вычисление контрольной суммы соответствующего файла. Отметим, однако, что в России в настоящее время нет авторизованных компаний, которые могли бы выдать электронный сертификат международного образца. Естественно, наличие электронного сертификата не гарантирует отсутствия потенциально опасного содержимого, но, по крайней мере, позволяет клиенту установить его источник.
Далее нам следует напомнить банальную истину, которая, как показывает практика, очевидна не для всех наших читателей. При работе с элементами управления ActiveX и Java-апплетами абсолютно бесполезно полагаться на антивирусное программное обеспечение (неважно, клиентское оно или серверное): признаков, характерных для вирусов (таких как способность внедряться внутрь исполняемых файлов и документов), подобные приложения, как правило, не содержат. Можно лишь запретить загрузку или выполнение соответствующего кода либо на уровне настроек браузера, либо на уровне корпоративных или персональных брандмауэров.
2.3.11. Приложения Macromedia Flash
Приложения Macromedia Flash являются сегодня наиболее популярным расширением функциональности Web-браузеров — с их помощью многие Web-дизайнеры придают своим сайтам интерактивность и оригинальность.
Модель безопасности приложений Flash основана на том, что Macromedia Flash Player, как и виртуальная Java-машина, выполняет приложения в ограниченном адресном пространстве, при этом выполняемые приложения не имеют доступа к файловой системе (кроме одного конкретного каталога, используемого Macromedia Flash Player для служебных целей) и другим ресурсам компьютера пользователя; исключение делается для микрофонов и видеокамер, однако пользователь должен дать разрешение на передачу данных, полученных с этих устройств. Доступ к сетевым ресурсам ограничивается доменом, с которого было получено приложение. Отметим, что приложения Flash также могут управляться с помощью кода JavaScript, присутствующего на той же странице. Сам Macromedia Flash Player для Microsoft Интернет Explorer является элементом управления ActiveX и использует возможности элементов управления ActiveX для доступа к свойствам приложений Flash из скриптовых языков.
Отметим, что помимо вышеперечисленных наиболее популярных средств расширения функциональности браузеров имеется и ряд других средств, реализованных обычно в виде так называемых модулей расширения (plug-in). Поскольку модули расширения также представляют собой исполняемый код, современные браузеры обладают средствами ограничения возможностей, связанных с их загрузкой и выполнением.
В заключение отметим, что перечисленные средства расширения функциональности HTML-страниц могут быть использованы и в динамических страницах, генерируемых серверными Web-приложениями. Так, в последнее время широкое распространение приобрели средства создания Web-приложений, выполняющихся под управлением Web-серверов и генерирующих динамические HTML-страницы с внедренным в них кодом на скриптовых языках, предназначенным для интерпретации браузером.
2.4. Технологии создания серверных частей Web-приложений
Cценарии для сервера позволяют получить доступ к файлам, базам данных и другим ресурсам, хранимым на сервере, а также к централизованным ресурсам сервера, таким как электронная почта или факс-служба.
Функционирование в непротиворечивой и управляемой среде - еще одно преимущество выполнения сценариев на сервере. Написанный код выполняется только на одной версии единственного сервера, а не на множестве версий множества браузеров.
Для использования сценариев на стороне сервера имеется три основных препятствия.
Запуск скриптов на сервере зачастую требует получения специальных прав от Web-мастера или системного администратора.
Для взаимодействия со сценариями, выполняющимися на сервере, пользователь должен щелкнуть мышкой на ссылке- или на кнопке на странице, а затем ожидать, когда сервер выполнит сценарий и перешлет ответ. Взаимодействие с использованием динамического HTML происходит быстрее.
Для тестирования сценариев для сервера требуется иметь собственный WWW-сервер, предпочтительно того же типа, что и промышленный вариант.
По этой причине большинство разработчиков предпочитают программирование браузера.
2.4.1. Активные серверные страницы - ASP
Internet Information Server (IIS), WWW-сервер фирмы Microsoft, поддерживает версию VBScript для сервера, которая называется Active Server Pages (ASP). Она позволяет совмещать блоки кода, написанного на VBScript, и HTML. Каждый блок VBScript-кода выполняется на сервере, не передается пользователю и заменяется сгенерированным на сервере HTML-кодом.
ASP поддерживает встроенные объекты для входящих запросов, исходящих ответов, пользовательского сеанса, приложения и собственно сервера.
Объект запрос хранит информацию о браузере клиента, переданной строке URL, полях форм и т. д.
Объект ответ получает исходный HTML-код, коды статуса и некоторые команды. С помощью кодов статуса, например, можно заставить пользователя ввести имя пользователя и пароль. Команды могут отослать пользователя к другому URL.
Объект сервер содержит информацию о сервере: его имя, версию программного обеспечения, состав программного обеспечения и так далее.
Объект сеанс сохраняет информацию о каждом пользователе для дальнейшего взаимодействия. Пользователь идентифицируются по блоку данных, которые сервер посылает браузеру посетителя и ожидает такой же блок при следующем запросе. (Такой маленькитй блок идентификационной информации называется cookie).
Объект приложение хранит информацию, общую для всех пользователей данного приложения. (Приложение - это все ASP-страницы в данном дереве каталогов).
Информацию по ASP вы можете найти в разделе «описание сценариев» на сайте
msdn.microsoft/library/default.asp?url=/library/en-us/dnanchor/html/anch_iis.asp
Новейшей версией технологии Active Server Pages является ASP .NET, ключевая в архитектуре Microsoft .NET Framework. Основное отличие этой технологии от ASP с точки зрения архитектуры приложений заключается в том, что код, присутствующий на Web-странице, не интерпретируется, а компилируется и кэшируется, что, естественно, способствует повышению производительности приложений.
С помощью ASP.NET можно создавать Web-приложения и Web-сервисы, которые не только позволяют реализовать динамическую генерацию HTML-страниц, но и интегрируются с серверными компонентами и могут использоваться для решения широкого круга бизнес-задач, возникающих перед разработчиками современных Web-приложений.
В общем случае клиентом Web-сервера может быть не только персональный компьютер, оснащенный обычными Web-клиентами (например, Web-браузером), но и мобильные устройства, отличающиеся ограниченным размером экрана, малым объемом памяти, а нередко и невозможностью отображения графики. Для этих устройств существуют свои протоколы передачи данных (Wireless Access Protocol, WAP) и соответствующие языки разметки (WML, Wireless MarkupLanguage, СHTML, Compact HTML и т.п.). При этом необходимо передавать данные на мобильное устройство в соответствующем формате, для чего нередко создаются специальные сайты (например, поддерживающие WAP и WML). Более удобным представляется создание приложений, которые способны генерировать тот или иной код в зависимости от типа клиента. Именно такой подход и реализован в Microsoft ASP .NET.
2.4.2. Perl
Название языка расшифровывается как Practical Extraction and Report Language. По легенде, Ларри Вол изобрел Perl, когда писал программу для составления отчетов. Perl попадает под действие лицензии на свободно распространяемое программное обеспечение и постоянно развивается.
На Web-сервере Perl используется для запуска CGI-программ. Когда Web-сервер передает URL в Perl-программу, то он автоматически запускает Perl-интерпретатор, сообщает, какая программа должна быть запущена, и получает информацию о входящем запросе одним из двух способов.
Через стандартный ввод - то есть через перенаправление ввода в командную строку MS DOS.
Через переменные окружения - то есть через те элементы, которые можно видеть после ввода команды SET в командной строке DOS.
Perl-программы выводят HTML в стандартный вывод, аналогично тому как MS DOS-программы выводят информацию на экран. Web-сервер перенаправляет этот вывод удаленному пользователю.
Perl, так же как JavaScript и VBScript, имеет контекстно-определяемые переменные, которые преобразуются автоматически из числовых в строковые. Имена простых переменных начинаются с символа $, имена массивов начинаются с символа @.
Как и в JavaScript, операторы Perl должны заканчиваться точкой с запятой. Фигурные скобки определяют блоки операторов. Знак равенства (=) используется при присвоении значений переменным, а для сравнения величин следует использовать «==» или .eq.. При этом, если $а == $b означает сравнение чисел, то $а eq $b означает сравнение строк. Оператор <= предназначен для сравнения чисел, а "le" - сравнение символов. Перепутать эти операторы проще, чем забыть поставить точку с запятой в конце оператора,
Perl-программы часто требуют небольших изменений при перенесении с одной операционной системы на другую. По управлением UNIX-систем, к примеру, в первой строке определяется местоположение интерпретатора языка:
#!/usr/bin/perl
Конкретное место может меняться от системы к системе.
В Windows NT начальная строка совсем не требуется. Вместо этого ваш системный администратор должен установить связь между интерпретатором Perl.exe и расширением файла .pl в конфигурации Web-сервера.
2.4.3. CGI
Common Gateway Interface (CGI) является стандартным интерфейсом, который позволяет выполнять серверные приложения, вызываемые через URL. Входной информацией для таких приложений являются данные HTTP-заголовка либо тело запроса, в зависимости от применяемого протокола. CGI-приложение генерирует HTML-код, который возвращается браузеру. Не так давно широко использовался и термин «CGI-скрипт», происхождение которого объясняется тем, что подобные приложения писались на скриптовых языках типа Perl, выполняющихся, тем не менее, не в браузере, а на сервере. CGI-приложения создают с помощью любых средств разработки, генерирующих консольные приложения для операционной системы, под управлением которой функционирует Web-сервер.
Главная проблема любого CGI-приложения заключается в том, что при каждом клиентском запросе сервер загружает это приложение в отдельное адресное пространство, а затем осуществляет его выполнение и выгрузку. Из-за этой особенности ограничивается производительность приложений и возможность одновременной обработки большого количества клиентских запросов.