В последнее время Web-узлы перестают быть просто набором страниц и картинок.
Все чаще создаются узлы, которые взаимодействуют с посетителем, выполняют
какие-то действия, собирают данные, ведут подсчеты, самонастраиваются под
предпочтения посетителя. Все меньше Web-узлы становятся похожими на статическую
библиотеку страниц, и превращаются в целые программные системы, связанные с
базами данных. Все чаще можно встретить объявления Web-студий, приглашающих
помимо Web-дизайнеров и администраторов еще и Web-программистов.
Для того, чтобы простая HTML-страница ожила, существует несколько технологий.
Первое деление связано с местом осуществления этого оживления: на сервере или на
клиенте. Далее деление ведется по методу программирования: с использованием
интерпретируемых скриптов или откомпиллированных программ. Вышеизложенное можно
представить в виде следующей таблицы:
Сторона клиента |
Сторона сервера |
Скрипты |
Программы |
Скрипты |
Программы |
- JavaScript
- JScript
- VBScript
|
- Plug-ins
- ActiveX
- Java applets
|
- Perl
- Tcl
- командная оболочка (shell)
|
- отдельные CGI-программы
- модули сервера
- ISAPI/NSAPI
- ActiveX
- Java servlets
|
Серверные скрипты, о которых речь пойдет в данной статье, относятся к
серверной части, но стоят особняком, так как сочетают в себе свойства как
скриптовых языков, так и программ.
Основное отличие от CGI-скриптов (которые пишутся чаще всего на языке Perl, а
иногда на Tcl и даже на языке командных оболочек bash/tcsh) и от CGI-программ
(которые пишутся на языках высокого уровня от C/C++ до Basic-a) - это то, что в
CGI-программах вы сами пишете выводимый HTML-код, а используя язык серверного
скрипта, вы встраиваете свою программу в готовую HTML-страницу, используя
открывающий и закрывающий теги.
Отличие серверного скрипта от JavaScript, VBScript или JScript, как можно
догадаться, состоит в том, что серверный скрипт выполняется на сервере, а
клиенту передается результат работы, тогда как в JavaScript-код полностью
передается на клиентскую машину и только там выполняется.
Ваша страница в этом случае представляет собой смесь HTML-кода с кодом
программы. Процесс схож с тем, как работает SSI (Server Side Includes).
Web-сервер настраивается таким образом, что файлы-страницы с определенным
расширением (asp/php/cfm) не отправляются сразу клиенту, а перед отправкой
пропускаются через обработчик, который производит разбор страницы и выполняет
операции, в ней записанные. Таким образом клиенту выдается не та страница,
которая хранится на сервере, а страница созданная на лету по результатам
выполнения программы. Как видите, связка состоит из двух звеньев: скриптов в
HTML-странице и обработчика, который представляет собой либо отдельную
программу, либо для увеличения скорости работы встраивается в виде модуля в
Web-сервер.
Преимущества: Независимость от платформы. В большинстве случаев
скрипты, написанные для одной платформы, можно перенести на другую платформу с
минимальными изменениями или даже вообще без них. Главное, чтобы под данную
платформу существовал "обработчик". В последнее время разработчики языков
серверных скриптов стали уделять большее внимание переносимости и стараются
выпускать обработчики под как можно большее количество платформ. Открытость
кода. Работая со скриптами, вы всегда можете быть уверены в том, что
полностью контролируете выполнение программы. В отличие от готовых
откомпиллированных программ вам нет нужды задаваться вопросом, а не исполняет ли
программа какие-либо запрещенные действия? Имея исходный текст, вы всегда можете
внести в программу такие изменения, которые в полной мере отвечают именно вашим
специфическим запросам.
Недостатки:
- Скорость работы. Несмотря ни на что, рассматриваемые нами языки -
являются интерпретируемыми. Это значит, что они в большей степени уступают по
скорости работы откомпиллированным CGI-программам.
В данной части мы рассмотрим более подробно наиболее популярные технологии
серверных скриптов:
- PHP
- embPerl, Mod_perl
- ColdFusion
- ASP
- Java Server Pages
- WebSQL
- PHP
Главный Web-узел:
http://www.php.net/
Платформы: Win32, Linux
Механизм: отдельная CGI-программа, модуль Web-сервера
Web-сервера: IIS, Apache
Расширения файлов: php, php3, phtml
Весьма популярная технология во многом благодаря своей бесплатности. Язык
скриптов напоминает своим синтаксисом язык C. Имеется множество дополнительных
библиотек для работы с различными базами данных, с документами PDF, с
GIF-файлами. Часто PHP увязывается в одно с такой же бесплатной базой данных
как MySQL. Существует множество провайдеров, предоставляющих хостинг со связкой
Apache/PHP/MySQL. в настоящее время разработчики PHP утверждают, что этот язык
используется на 1.000.000 узлах.
* * *
- embPerl
Главный Web-узел:
http://perl.apache.org/embperl/
Платформы: Linux, Win32
Механизм: отдельная CGI-программа, модуль Web-сервера
Web-сервера: IIS, Apache
В HTML-страницы вставляются скрипты на уже знакомом вам языке Perl. Это
значит, что для использования вам не придется как в случае с ColdFusion или
PHP изучать новый язык. Технология бесплатна. Имеется увязка с популярными
базами данных.
* * *
- mod_perl
Главный Web-узел:
http://perl.apache.org/
Платформы: Linux, Win32
Механизм: модуль Web-сервера
Web-сервера: Apache
Идея та же, что и в embPerl, только в этом случае интерпретатор Perl-а
"зашивается" во внутрь Web-сервера Apache. Это естественно повышает скорость
работы. Технология бесплатна.
* * *
- ColdFusion
Главный Web-узел:
http://www.allaire.com/Products/Coldfusion/
Разработчик: Allaire, Inc. Платформы: Win32, Linux (начиная с версии 4.5)
Механизм: отдельная CGI-программа
Web-сервера: IIS, PWS
Расширения файлов: cfm
Технология является коммерческой. Имеется свое собственное средство
разработки страниц со встроенными скриптами на языке ColdFusion - ColdFusion
Studio - клон HomeSite. На платформе Win32 связывается с базами данных
стандартными средствами Windows через ODBC.
* * *
- ASP
Главный Web-узел:
http://www.microsoft.com/
Разработчик: Microsoft
Платформы: Win32
Механизм: встроенный модуль для Web-сервера
Web-сервера: IIS
Расширения файлов: asp
Мощная технология, усиленно продвигаемая Microsoft. Жаль только, что
работает она в полную силу только на продуктах того же Microsoft. Синтаксис
скриптов напоминает VBScript/VBA. Интеграция с операционной системой гораздо
более тесная, чем в других технологиях, что позволяет вытворять на ASP такие
вещи, которые, пожалуй, невозможны с помощью других языков. Поддерживает
работу с базами данных.
* * *
- JSP (Java Server Pages)
Главный Web-узел:
http://java.sun.com/products/jsp/
Разработчик: Sun
Расширения файлов: jsp
[пока не готово] Существует проект по созданию бесплатного варианта JSP -
GNUJSP.
* * *
- WebSQL
[пока не готово]