Динамические технологии стороны сервера

Термины «интерактивность», «интерактивный» за несколько последних лет обросли таким количеством рекламной шелухи, что истинный смысл этих слов уже почти потерялся в кипе красивых слоганов.
Постараемся восстановить справедливость и отделить зерна от плевел. Понятие интерактивности восходит к английскому слову interaction — взаимодействие. «Интерактивный», таким образом, в буквальном переводе означает «взаимодействующий».
Применительно к веб-разработке субъектами взаимодействия выступают:

  • с одной стороны — человек (пользователь, посетитель сайта);
  • с другой стороны — собственно веб-ресурс, используемый этим человеком.

В общем случае интерактивными возможностями обладает любой пользовательский интерфейс, так или иначе реагирующий на команды пользователя. Другое дело, что тот или иной интерфейс может быть интерактивным в большей или меньшей степени — критерии качества пользовательских интерфейсов обсуждаются в специализированной литературе, и это не наша тема.
Что же такое интерактивный веб-сайт?
Кому-то мои слова покажутся неожиданными, но практически любой сайт, даже статический, построенный лишь только на основе HTML и CSS, можно с чистой совестью назвать интерактивным. Такие действия, как открытие новой страницы по щелчку мышью на гипертекстовой ссылке, подсветка гиперссылки другим цветом при наведении на нее курсора мыши, появление всплывающей подсказки при наведении курсора мыши на аббревиатуру — вполне состоятельные примеры интерактивных возможностей статических сайтов.
Разумеется, в XXI веке этого мало. Интерактивные возможности базовых технологий клиентской стороны существенно расширяются благодаря применению таких решений, как языки сценариев, DHTML (Dynamic HTML), Flash, Java-аплеты, ActiveX-компоненты и т. д.
Так, например, DHTML (конгломерат технологий стороны клиента, объединяющий HTML, CSS и JavaScript под знаменами DOM — Document Object Model, стандарта объектной модели документа, предложенного Консорциумом W3C) позволяет динамически формировать веб-страницы в процессе их загрузки и динамически же модифицировать содержание, структуру и представление уже загруженных документов под влиянием действий пользователя, причем практически в неограниченных пределах.
Технология Macromedia Flash (векторная анимированная графика) с использованием языка ActionScript дает возможность создавать вполне «живые» ролики вплоть до весьма сложных игр.
Тем не менее, факт остается фактом — возможностей одних только технологий стороны клиента недостаточно для реализации приложений, аналогичных перечисленным в самом начале введения к нашей книге.
В чем же кроются принципиальные отличия серверных решений от технологий стороны клиента, включая наиболее интерактивные?
Ключевой момент состоит в том, что технологиям клиентской стороны не под силу обеспечить согласованное взаимодействие между несколькими пользователями одного сайта. Каждый пользователь может сколь угодно интенсивно работать с загруженным в окошко своего браузера интерактивным веб-приложением, построенным, скажем, на основе DHTML, но результаты этих действий никак не способны отразиться на состоянии копий того же самого приложения, загруженных другими пользователями.
Элементарный пример задачи, не решаемой средствами клиентских технологий — счетчик посещений страницы. Все, что должен делать такого рода скрипт (который пишется за пять минут, в чем мы убедимся в главе 4) — с каждой новой загрузкой страницы прибавлять единицу к числу предшествующих загрузок этого документа.
Загвоздка в том, что ни один клиент никоим образом не может узнать, сколько раз обращались к данной странице другие клиенты — более того, он вообще понятия не имеет об их существовании, наивно полагая, что взаимодействует с сервером тет а тет.
Выходит, учет числа загрузок той или иной страницы нужно вести на стороне сервера. Только в этом случае все пользователи увидят на счетчике актуальную цифру, соответствующую количеству посещений данной страницы всеми клиентами, обращавшимися к ней.
Очевидно, что такие приложения, как гостевые книги и форумы, и подавно должны использовать серверные технологии. Для того, чтобы отзыв, оставленный кем-то из пользователей, смогли прочесть остальные посетители сайта, эту реплику необходимо, прежде всего, так или иначе сохранить на стороне сервера с тем, чтобы впоследствии включать ее текст в состав кода соответствующих динамических страниц.
Помимо сказанного выше, весьма существенное ограничение применимости технологий стороны клиента для решения ответственных задач состоит в отсутствии гарантии поддержки требуемого набора технологий всеми потенциальными клиентами.
Так, устаревшие браузеры наподобие Netscape Navigator 4.x или Opera 5.x не поддерживают DHTML на том уровне, какой обеспечивается современными браузерами — Internet Explorer 5.0 и выше, Opera 7.0 и выше, Firefox 1.0 и выше и т. д. ActiveX-компоненты без использования дополнительных подключаемых модулей поддерживаются только браузером от Microsoft.
Меж тем, помимо графических, существуют еще текстовые и речевые браузеры, браузеры карманных компьютеров и смартфонов и т. д., в которых о полноценной поддержке многих интерактивных технологий стороны клиента не может идти и речи.
Вдобавок ко всему некоторые пользователи имеют привычку отключать у себя JavaScript, Flash, ActiveX и пр. даже в тех браузерах, которые поддерживают перечисленные технологии вполне исправно.
Разработчики общедоступных веб-сайтов (в противоположность проектировщикам интранет-решений), увы, не могут контролировать конфигурацию клиентских машин. Но зато ведь и пользователи браузеров никак не могут влиять на настройки сервера! А это, несомненно, радует: если пользователь может отключить у себя в браузере поддержку JavaScript, то вот уж CGI-скрипты на сервере у него отключить никак не получится.
Клиенту, получившему HTML-код веб-страницы в теле HTTP-сообщения ответа сервера, совершенно все равно, в каком виде эта страница была представлена на стороне сервера перед отправкой — являлась ли она статической или сгенерированной динамически, а тем более, как именно сгенерированной…
Таким образом, для генерации динамических страниц на стороне сервера мы можем использовать самые разнообразные средства, начиная простейшими SSI (см. главу 3) и заканчивая программными комплексами, основанными на мощных СУБД промышленного назначения. Мы вольны выбирать серверную платформу, руководствуясь собственными предпочтениями и не заботясь о том, что подумает о наших вкусах браузер.
В этом смысле динамические веб-технологии стороны сервера намного более надежны и универсальны в сравнении с решениями стороны клиента.


© 2008-2018 ОптимизацияВебСайтов.ру


Любое использование текстового и графического контента сайта без активной ссылки на источник не доскается.