Доступ к гипертекстовым документам, расположенным на сервере, осуществляет программное средство, называемое WWW-сервером (Web-сервером). С его помощью осуществляются также обращения к программам, таким как СУБД, электронная таблица, программы моделирования и т.п., организуется интерактивная работа пользователей. Для использования в WWW-серверах предлагается несколько технологий.
Интерактивная работа пользователей сопровождается визуализацией меняющихся изображений, реакцией системы на определенные действия пользователя или иными операциями по обработке информации при просмотре документов. Эти операции выполняются по сценариям, задаваемым на языке программирования. Применяемые при этом технологии различаются как по типу используемого языка, так и по месту исполнения программ, реализующих сценарии, а также по затратам вычислительных ресурсов. К используемым средствам относятся языки HTML, XML, JavaScript, PHP (Personal Home Pages), VBScript, Perl, Java, технологии CGI, ISAPI (Internet Services Application Program Interface), ASP (Active Server Pages) и др.
Сравнительно простые сценарии обычно представляют на языках типа JavaScript, PHP, VBScript или их разновидностях. Язык PHP близок по своему назначению и сложности освоения к языку JavaScript, но мощнее последнего по функциональности (разнообразие типов данных, поддержка ODBC). Очевидно, что браузер должен поддерживать используемый язык сценариев.
Обычно команды сценария непосредственно включаются в HTML-документ, например, c помощью следующего фрагмента
<SCRIPT LANGUAGE = "javascript">
<!-- сценарий //-->
</SCRIPT>
<!-- сценарий //--> — собственно текст сценария, представленный в виде комментария. Браузеры, не имеющие JavaScript-обработчиков, просто игнорируют комментарий, а современные браузеры исполняют записанные в сценарии команды. Характерной особенностью такого сценария является интерпретация и исполнение команд на клиентском узле.
Технология ASP появилась в связи с стремлением сделать интерактивность страниц платформно независимой, поскольку в браузерах может не быть поддержки того языка сценариев, который применен в Web-странице. Для этого нужно перенести обработку сценария с клиента на сервер, что и выполнено в ASP. Обычно в ASP обмен данными между браузером и сервером включает запрос из браузера, передачу формы (таблицы) из сервера для ее заполнения пользователем, пересылку заполненной таблицы на сервер, обработку по сценарию в сервере и возвращение в браузер результата в виде HTML-текста без вставок команд сценария. Следует отметить, что ASP — технология компании Microsoft и связана с использованием компонентов AcniveX, что часто неудобно. В Web-порталах преимущественно используется Java и потому чаще используется аналогичная ASP технология JSP (Java Server pages).
Обращение к мультимедийным объектам возможно способом связывания, т.е. использованием обычной ссылки на мультимедийный файл, при этом выбор данной ссылки пользователем означает переход к демонстрации визуальной или воспроизведению звуковой мультимедийной информации. Чаще требуется визуальную мультимедийную информацию внедрять в Web-страницу, отводя для показа данных видео или мультипликации часть изображения (экрана). Для внедрения используют компоненты ActiveX — программы управления некоторыми операциями, например, визуализацией документа, доступом к базе данных и т.п.
Компонент ActiveX добавляется в Web-страницу с помощью элемента <OBJECT>. В элементе указывают код, по которому будет найден нужный компонент ActiveX, и параметры, такие как адрес мультимедийного файла и расположение поля вывода мультимедийной информации на экране дисплея. Средства обработки мультимедийной информации, представленной в файлах большинства известных форматов таких, как AVI, MOV, MPG, МР3, WAV, MID, обычно встроены в браузеры.
Более сложные сценарии требуют использования прикладных программ, написанных на языках программирования Java, C, C++ и т.п. Если прикладная программа специально создается для использования в Web-среде, целесообразно использовать язык Java.
В ряде случаев используемые прикладные программы не являются платформно независимыми и по этой или иным причинам должны исполняться на сервере. В этих случаях используется технология CGI (Common Gateway Interface — простой шлюзовой интерфейс) или ISAPI (Internet Server Application Program Interface).
В CGI и ISAPI прикладная программа исполняется на сервере. Допустимо использовать программы на различных языках программирования (C/C++, Fortran, Perl, Java, Visual Basic, Apple Script и др.). Но для обеспечения интерфейса Web-сервера с прикладной программой необходимо иметь программу-шлюз (посредник), обрабатывающую запросы, которые поступают от браузера, и передающую обработанные запросы браузеру в нужной для него форме. После исполнения прикладной программы (ПП) шлюз преобразует результаты в приемлемую для визуализации форму (в HTML-документ) и передает результаты обратно браузеру, т.е. для каждой ПП нужно иметь соответствующий обработчик.
Если сервер создан на базе Microsoft Internet Information Server, то вместо CGI лучше использовать технологию ISAPI, как более быстродействующую.
Дальнейшее развитие Web-технологий связано с появлением объектно-ориентированного языка программирования Java. Язык Java позволяет создавать аппаратно независимые приложения, ориентированные на применение в системах распределенных вычислений. Программы на языке Java обладают достаточно высокой вычислительной эффективностью. Эти свойства достигнуты за счет двухэтапной обработки исходных модулей. На первом этапе на сервере производится преобразование исходных модулей в платформно независимый промежуточный байт-код методом компиляции. Благодаря использованию компиляции потеря эффективности, присущая интерпретации, оказывается незначительной. На втором этапе программа, представленная в виде байт-кода и называемая аплетом (applet), передается на компьютер клиента вместе с Web-страницей. Браузер клиента начинает выполнение аплета при его обнаружении в полученном HTML-файле.
Обращение к Java-аплетам из браузера возможно с помощью специального элемента <APPLET> или заменяющего его элемента <OBJECT>, например:
<APPLET CODE="имя_файла_аплета">
элементы <PARAM>
</APPLET>
Элементы <PARAM>, задают параметры, передаваемые в аплет. В одном HTML-файле можно предусмотреть обращения к нескольким аплетам, находящимся в разных узлах сети. Следует однако отметить, что обычно в целях повышения информационной безопасности загружаемому аплету запрещается обновлять и читать файлы, кроме тех, которые находятся на хосте самого аплета.
Чтобы выполнить Java-программу, необязательно передавать ее браузеру. Как и в технологии CGI, она может исполняться на сервере, в этом случае она называется сервлетом. Поскольку использование технологии CGI имеет много ограничений, связанных с проблемами производительности и безопасности, технологии сервлетов и JSP получили более широкое распространение.
Сервлет можно определить как серверную версию аплета, используемую для обработки клиентских запросов на Web-сервере. С точки зрения языка, сервлет можно считать классом Java, не имеющим привязки к конкретным платформе или Web-серверу и взаимодействующим с клиентом по стандартной схеме запрос-ответ. Отличиями технологии сервлетов от технологии CGI являются, во-первых, большая простота реализации сервлетов, благодаря присущей языку Java платформенной независимости. Во-вторых, большая эффективность, связанная с тем, что сервлет в процессе транзакции загружается один раз, в то время как в CGI каждое обращение к прикладной программе из обработчика генерирует новый процесс, на что тратится значительное время работы серверного узла.
Для реализации технологии сервлетов на Web-сервере необходимо иметь виртуальную Java-машину и программу связи Web-сервера с сервлетом (аналогично шлюзам в CGI), называемую Web-контейнером (servlet engine). Функциями Web-контейнера являются управление циклом жизни сервлетов — их создание, установка, активизация/деактивизация, сохранение состояния, уничтожение. Web-контейнер обеспечивает интерфейсы "запрос" и "ответ" с сервлетом. Он заносит данные запроса в некоторый объект req и передает этот объект сервлету вместе с пустым объектом resp. Сервлет обрабатывает информацию, заключенную в req, и оформляет ответ, заполняя объект resp. Контейнер отправляет ответ клиенту через Web-сервер.
Примерами Web-контейнеров могут служить программы Resin, Tomcat, JRun, JServ. Для создания самих сервлетов используется набор инструментальных средств, например JSDK 1.4 (Java Software Development Kit) фирмы Sun Microsystems.