Все
рассмотренные выше технологии программирования, расширяющие возможности
веб-страниц, предполагают пересылку на компьютер пользователя и последующий
запуск на нем некоторого программного модуля, так или иначе связанного с
«несущим» HTML-документом. Интересно, однако,
рассмотреть здесь же серверные технологии
программирования, предназначенные не для спецэффектов на экране пользователя,
а для автоматической генерации посылаемых ему страниц (которые, в свою
очередь, уже могут содержать программные вставки «уровня клиента»).
По
некоторым оценкам, больше половины всех страниц в современном Интернете
генерируются и обновляются динамически — на основе информации из баз
данных, в ответ на действия пользователя или в зависимости от каких-то внешних
обстоятельств (например, текущей даты или курса доллара). Простейшая технология
такого рода, поддерживаемая почти всеми веб-серверами, называется SSI(ServerSideInclude, «Вставки
на уровне сервера»). Возможности ее ограничены вставкой внутрь одного HTML-файла
содержимого другого, автоматической установкой даты, подсчетом числа загрузок
страницы и т. п. Из более сложных технологий создания динамических сайтов
особенно популярны две: CGI и ASP.
Стандарт
CGI (CommonGatewayInterface,
«Общий интерфейс шлюзов»), поддерживаемый большинством программ-серверов, не
накладывает каких-либо ограничений на используемый язык программирования, а
лишь перечисляет правила, которые должна выполнять программа, генерирующая
веб-страницу, чтобы сервер мог запускать ее в ответ на запрос документа с
определенным URL. Однако поскольку большинство таких
программ пишутся на специализированном языке Perl,
термины «CGI» и «Perl»
часто употребляются как синонимы. Стандарт CGI
достаточно
72
прост
и, в частности, ничего не говорит о взаимодействии с какими бы то ни было
базами данных, оставляя этот аспект целиком на совести самой CGI-программы
и того языка, на котором она написана. Язык Perl не
является собственностью какой-либо фирмы, и существуют бесплатно
распространяемые интерпретаторы этого языка для всех операционных систем.
Альтернатива
CGI,
появившаяся в последнее время, — язык ASP(ActiveServerPages, «Активные
страницы на сервере») фирмы Microsoft (вполне естественно, что
поддержка ASP существует пока только в веб-сервере US
этой же фирмы). ASP-код хранится не в отдельных объектах,
а встраивается прямо в HTML «активной» страницы, но в
отличие от JavaScript никогда не выходит за пределы
веб-сервера. Инструкции языка ASP позволяют генерировать
фрагменты HTML-кода, выбирать один из вариантов кода
в зависимости от каких-то условий, циклически повторять куски HTML с
изменениями и т. п. ASP-файл может состоять целиком из ASP-инструкций,
а может и быть чистым HTML без единой ASP-вставки;
так или иначе, сервер отсылает броузеру только «сухой остаток» HTML
после выполнения всех команд ASP. С практической точки
зрения главным достоинством ASP являются развитые средства
доступа к базам данных, многие из которых, как и веб-сервер Microsoft,
работают на платформе WindowsNT.