На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

СЦЕНАРИИ CGI:  ОБЩАЯ КАРТИНА

Во время своих путешествий по Web вы, должно быть, встреча­ли сайты с формами для персональной информации (см. ри­сунок 20.1).
Посредством этих форм сайты могут взаимодействовать с пользователем. Пос­ле того как пользователь заполнит форму, броузер отправит введенные им данные на сервер. Тот, в свою очередь, запустит специальную программу,
которая должна обработать присланные данные. В зависимости от своего предназначения, программа может сохранить полученную информацию в базе данных (вроде листа рассылки) или сгенерировать ответ.
Чтобы вернуть ответ пользователю, программа должна создать HTML-файл, а затем вернуть его серверу. Получив файл, сервер перешлет его броузеру клиента. Программа содержит операторы, с помощью которых она может создавать HTML-строки динамически.
и WEB-САЙТЫ
Создание динамических документов — это не такая уж сложная задача. На­помню (6), что HTML-файл представляет собой обычный текстовый ASCII-файл. Обычно файлы создаются в каком-либо редакторе и лишь потом помещаются на север. лись самим сервером.
Но иногда требуется, чтобы HTML-документы создава-
В большинстве языков программирования создание ASCII-файлов представляет довольно простую задачу. Программа просто записывает данные в файл с помо­щью стандартных процедур вывода.
Как и любая другая программа, Web-сервер может создавать ASCII-файлы. Если вы уже создали программу Web-сервера, то вам не составит большого труда до­бавить к его тексту несколько процедур записи файла, а затем перекомпилиро­вать программу. Кроме того, измените текст программы так, чтобы сервер пе­ресылал созданный файл броузеру пользователя. показано, как сервер создает HTML-файлы, а затем пересылает их броузеру пользователя.
Получив такой файл, броузер отображает на экране полученную динамическую Web-страницу. показано, как программа севера пересылает ASCII-файл  броузеру пользователя.
Итак, можно создать сервер, который будет генерировать Web-страницы. Но зачем же тогда нужны сценарии CGi? Оказывается, создавать динамические HTML-файлы можно и без использования сценариев. Однако для создания но­вой интерактивной Web-страницы вам понадобится полностью переделать сер­вер. Со временем программа может вырасти до невероятных размеров. Как же быть? Вот именно для таких целей больше всего подходят сценарии CG1. Благо­даря им серверу не нужно создавать динамические Web-документы. Для созда­ния такой программы можно воспользоваться различными языками программи­рования: С, C++, Perl, JavaScript, VBScript и т. д.
В общем, файлы CGI предоставляют неоценимую помощь при разработке Web-сайтов. Благодаря сценариям вам не придется полностью переделывать сер­вер. Вместо этого достаточно будет заменить один сценарий другим.
ГДЕ   РАСПОЛАГАЮТСЯ   СЦЕНАРИИ CGI
Для передачи данных в Web используются так называемые транзакции. Каждая транзакция состоит из четырех этапов (5).
броузер
Четыре этапа транзакции.
сервер HTTP
показано, как изменяется транзакция при использовании сце­нариев CGI.
броузер сервер HTTP
Изменение транзакции при использовании сценариев CGI.
Как видно из рисунка, сценарии CGI расположены на сервере, и поэтому об­мен данными между ними производится также на сервере. Благодаря этому сце­нарий CGI может получать данные динамически и отсылать их серверу.
ВЫЗОВ СЦЕНАРИЯ
Как уже говорилось в главе 13, расположенная в броузере виртуальная машина Java обрабатывает апплеты Java на компьютере пользователя. Кроме того, в этой главе вы узнали о том, что программы JavaScript также выполняются внут­ри броузера. Однако сценарии CGI выполняются только на стороне сервера. Поэтому языки Java и JavaScript называют языками стороны клиента, a CGI — языком стороны сервера.
Пользователь не может с помощью броузера выполнить сценарий CGI. Эти про­граммы должны выполняться на сервере. Следовательно, они должны распола­гаться на сервере. После выполнения сценария сервер посылает полученные результаты броузеру пользователя. Только так пользователь может просмотреть полученные результаты.
РАБОТА СО/
В главе 6 рассказывалось о том, что для получения HTML-документа броузер проводит транзакцию, состоящую из четырех этапов. Во-первых, броузер дол­жен установить связь с сервером, хранящим нужный документ. После создания соединения броузер запрашивает у сервера документ. Обычно это делается с помощью HTTP-метода GET. Если такой документ существует, то сервер пере­дает его броузеру. И в завершение, сервер разрывает соединение.
При работе со CGI эта схема немного изменяется, причем все изме-
нения происходят на стороне сервера. Броузер же не имеет абсолютно никакого понятия о том, что он работает не с обычными Web-страницами, а со сценариями CGI. Дело в том, что использование сценариев CGI не требует изменения процедуры запроса. Если броузер встретит сценарий, то последний будет выпол­нен сервером, а не броузером. Сценарий, в свою очередь, проделает всю затребо­ванную броузером (пользователем) работу и вернет результат в виде HTML-файла. Получив такой файл, сервер присоединяет к нему необходимый заголовок и пересылает броузеру. После этого сервер разрывает соединение и ожидает сле­дующий запрос. Этот процесс схематично показан 7.
ВЗАИМОДЕЙСТВИЕ МЕЖДУ СЕРВЕРОМ и СЦЕНАРИЕМ CGI
После вызова сценария сервер должен предоставить ему необходимые для рабо­ты данные (данные, введенные пользователем). Кроме того, сервер должен уста­новить переменные окружения и обработать возвращенные сценарием данные. В частности, он должен предоставить информацию для заголовка.
Как уже говорилось, HTTP — это используемый в Web протокол передачи дан­ных. Заголовок HTTP помогает программам эффективнее взаимодействовать друг с другом. Поэтому нам нужно поближе познакомиться с ними. Основные дета­ли заголовков HTTP описаны в главе 6. Например, прежде чем переслать дан­ные броузеру, сервер должен послать ему набор заголовков, описывающих тип данных, их состояние и т. д. Броузер, в свою очередь, определяет содержимое
файла с помощью заголовка Content-Type. При пересылке данных броузеру сер­вер должен снабдить его метаинформацией.
ПРЕОБРАЗОВАНИЕ КОМПЬЮТЕРА
в
WEB-СЕРВЕР
Чтобы проверить свои сценарии вы должны установить
на своей машине HTTP-сервер. Так как большинство пользо­вателей обладают ограниченным доступом к серверу, они не смогут протестировать свои сценарии. Однако можно восполь­зоваться сервером Folk Web (он может работать под управлени­ем Windows 95 или Windows NT). Чтобы загрузить эту программу, посетите


Web-сайт ILAR Concepts, расположенный по адресу http://www.ilar.com/ folkweb.htm (8).
FolkWeb Server Version V1.2
Кроме того, вы сможете выполнять на сервере сценарии CGI. Но самое главное заключается в том, что для установки сервера вам не придется прилагать особых усилий. (и дополнительных капиталовложений). Более того, для работы сервера не нужен статический IP-адрес.
Однако не спешите слишком радоваться. Сервер Fob Web является бес­платной программой. Но лицензионное соглашение позволяет испытать про­дукт до его приобретения. Если вы захотите купить программу, вам придет­ся заплатить за нее. Лицензионное соглашение расположено в файле license.doc, который находится в подкаталоге docs.
КАК    ОПРЕДЕЛИТЬ IP-АДРЕС
Чтобы связаться с сервером, нужно знать IP-адрес машины, выделенный вам провайдером. Если у вас нет постоянного IP-адреса, то вы должны определить его для текущего сеанса. Для этого свяжитесь со своим поставщиком услуг Internet.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика