Введение.
История развития языков для гипертекстовых страниц:
Связь Web -сервера с серверами баз данных.
- WWW - доступ к существующим базам данных может осуществляться по одному из трех основных сценариев: HTML ( HyperText Markup Language ) — язык компоновки документов и спецификации гиперссылок, используемый для кодировки документов в Web .
- DHTML ( Dynamic HyperText Markup Language ) — дает возможность взаимодействия web -страниц с пользователем на клиентском компьютере, что в значительной степени обогащает возможности создаваемых с их помощью web -страниц и web -приложений и сводит часть взаимодействия пользователя с сервером к взаимодействию пользователя с DHTML -документом.
- Языки сценариев ( JavaScript и VBScript ) —используются на стороне клиента, то есть генерируют объекты на основании HTML -страницы на стороне клиента в окне его браузера.
- В 1994 году специалистами компании Sun Microsystems была разработана технология создания динамических интерактивных Web -страниц с использованием объектно-ориентированного мультиплатформенного языка Java . Программы на языке Java называются аплетами ( little applications ) и исполняются обычно на стороне клиента.
- CGI -скрипты ( Common Gateway Interface ), или интерфейс общего шлюза — программы, исполняемые на стороне web -сервера. CGI обеспечивает способ, посредством которого Web -браузер осуществляет запуск Web -приложения на стороне сервера, результатом работы которого является HTML -страница, посылаемая клиенту. Под CGI -программами понимают программы, написанные на любом языке программирования, понимаемом Web -сервером ( C , Visual Basic , Perl ( Practical Extraction and Report Language ) ).
- ASP ( Active Server Pages ) – язык описания активных серверных страниц, разработанный Microsoft (активные серверные страницы – это файлы, которые обрабатываются на сервере и содержат текст HTML и код сценариев). Вопреки ожиданиям, в настоящее время поддерживается на многих платформах (в т.ч. Linux ). ASP позволяет перемешивать HTML -код с программным кодом, что, в свою очередь, позволяет легко и удобно встраивать серверные программы в страницы, причем первые будут выполняться только на стороне сервера.
- PHP ( Personal Home Page ) — выполняющийся на стороне сервера мультиплатформенный язык описания сценариев, встраиваемый непосредственно в HTML -код. Целью создания языка является разработка динамически генерируемых страниц в кратчайшие сроки. Развивается с 1994 года.
- Однократное или периодическое преобразование содержимого БД в статические документы. В этом варианте содержимое БД просматривает специальная программа, создающая множество файлов - связных HTML -документов. Полученные файлы могут быть перенесены на один или несколько Web -серверов. Доступ к ним будет осуществляться как к статическим гипертекстовым документам сервера. Он эффективен на небольших массивах данных простой структуры и редким обновлением, а также при пониженных требованиях к актуальности данных, предоставляемых через Web .
- Динамическое создание гипертекстовых документов на основе содержимого БД. В этом варианте доступ к БД осуществляется программой ( CGI , ASP , PHP ), запускаемой в ответ на запрос web -клиента. Эта программа, обрабатывая запрос, просматривает содержимое БД и создает выходной HTML -документ, возвращаемый клиенту. Это решение эффективно для больших и часто обновляемых баз данных со сложной структурой и при необходимости поддержки операций поиска. В этом варианте возможно осуществлять изменение БД из Web -интерфейсов. Однако к недостаткам этого метода можно отнести большое время обработки запросов, необходимость постоянного доступа к основной базе данных, что увеличивает загрузку средств поддержки БД, связанную с обработкой запросов от Web -сервера.
- Создание информационного хранилища (ИХ) на основе высокопроизводительной СУБД, связанной с web -сервером, с возможностью периодической загрузки данных в ИХ из основных СУБД. Для обработки разнообразных запросов, в том числе и от Web -сервера, используется промежуточная БД высокой производительности. Информационное наполнение промежуточной БД осуществляется специализированным программным обеспечением на основе содержимого основных баз данных. Для загрузки содержимого основной БД в информационное хранилище могут использоваться внешние программы, а также специализированные средства, поставляемые с SQL -сервером для поддержки информационных хранилищ.

Использование скриптов, исполняемых Web -сервером.
Помимо доступа к статическим документам сервера существует возможность получения документов как результата выполнения прикладной программы. Такая возможность реализуется на Web -сервере благодаря использованию интерфейса CGI ( Common Gateway Interface ). Спецификация CGI описывает формат и правила обмена данными между ПО WWW сервера и запускаемой программой.
Для инициирования CGI необходимо, чтобы в запрашиваемом URL был указан путь до запускаемой программы. Web -сервер исполняет эту программу, передает ей входные параметры и возвращает результаты ее работы, как результат обработки запроса, клиенту. CGI - программой может являться любая программа локальной операционной системы сервера - в двоичном виде или в виде программы для интерпретатора.
С целью облегчения администрирования CGI - программ, а также для удовлетворения требованиям безопасности CGI - программы группируются в одном или нескольких явно указанных серверу каталогах. По умолчанию это каталог cgi - bin в иерархии серверных каталогов, однако, его имя и положение могут отличаться.
CGI определяет 4 информационных потока: переменные окружения, стандартный входной поток ( name 1= value 1, формат отличается для методов запроса POST и GET ), стандартный выходной поток (документ, сгенерированный cgi -модулем, или инструкция серверу, где получить необходимый документ), командная строка ( ключевые слова, имена и значения полей формы ).

Perl (Practical Extraction and Report Language) является одним из наиболее гибких языковых средств, служащих для программирования интерфейсов CGI. Изначально Perl предназначался для обработки больших объемов данных и генерации отчетов по обработке этих данных (как явствует из его названия). Изначально созданный исключительно для работы под управлением операционных систем семейства UNIX, Perl постепенно превратился в полнофункциональный язык программирования для различных платформ.
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "<HTML><BODY>";
$host= shift || "";
$test_db="test";
$opt_user=$opt_password="";
use DBI;
$table="test_table ";
$dbh = DBI->connect("DBI:mysql:$test_db:$host",$opt_user,$opt_password) || die "\
Can't connect: $DBI::errstr\n";
$sth=$dbh->prepare("select * from $table") or die $dbh->errstr;
$sth->execute() or die $sth->errstr;
$i=0;
while (($row = $sth->fetchrow_arrayref))
{
print $row->[0]," ",length($row->[1]),"\n";
$i++;
}
$dbh->do("drop table $table") or die $DBI::errstr;
print "</BODY></HTML>";
При CGI -программировании возникает следующая проблема, связанная с производительностью. Всякий раз, когда Web -браузер запрашивает Web -страницу, генерируемую CGI -программой, на сервере запускается новый процесс. Это замедляет работу системы и требует выделения дополнительных ресурсов. ASP можно рассматривать как средство решения указанной проблемы. |