Использование прикладной программы

Технологии обработки данных на Web-сервере

Web-серверы хранят информацию в виде текстовых файлов, называемых также Web-страницами. Помимо текста, такие страницы могут содержать ссылки на другие страницы (расположенные на том же самом или другом Web-сервере), ссылки на графические изображения, аудио- и видео­информацию, различные объекты ввода данных (поля, кнопки, формы и т. д.), а также другие объекты.

Различают пассивные и активные Web-серверы. Если страницы сервера содер­жат только статическую текстовую и мультимедийную информацию, а также гипертекстовые ссылки на другие страницы, то Web-сервер называется пассивным. Когда же страницы Web-сервера содержат формы или гиперссылки с параметрами, то Web-сервер должен тем или иным способом обеспечить обработку запросов, возможно используя внешние источники данных (файлы или базы данных), т.е. быть активным.

Существуют два варианта реализации обработки данных активным Web-сервером:

· организация взаимодействия Web-сервера с прикладной программой;

· обработка специальным образом выделенных фрагментов Web-страниц Web-сервером либо установленными на нем программными расширениями (plug-ins).

Процесс обработки данных с использованием прикладных программ приведен на рис. 4.6.1.

Рис. 4.6.1. Обработка данных на Web-сервере с использованием прикладных программ

Когда пользователь в форме Web-страницы нажимает кнопку передачи данных на сервер (эта кнопка определяется элементом input со значениями type="submit" или type="image"), Web-браузер формирует запрос для запуска программы на сервере. Имя программы указывается в атрибуте action элемента form.

В запросе также указываются параметры формы и их значения. Способ пересылки параметров указывается в атрибуте method элемента form. Этот атрибут может иметь одно из двух значений: "get" или "post" (см. 4.6.2.1).

Пример 4.6.5. Формирование запроса для передачи данных формы на сервер:

1. Формирование запроса для method="get":

В Web-странице задана следующая форма:

<form action="cgidir/connect.pl" method="get">

<input type="text" name="login" id="login">

<input type="text" name="password" id="password">

<input type="submit" value="OK">

</form>

Если после ввода имени пользователя – "Ivanov" в первое текстовое поле и пароля – "stud1" во второе текстовое поле нажать кнопку "OK", Web-браузер сформирует следующий запрос обращения к программе на языке Perl:

GET /cgidir/connect.pl?login=Ivanov&password=stud1 HTTP 1.1

пустая строка

Если задано значение method="post", то параметры формы передаются в теле запроса.

2. Формирование запроса для method="post":

В форме в предыдущем примере значение атрибута method method="get"изменено на method="post". При тех же введенных в форме данных запрос Web-браузера будет иметь следующий вид:

GET /cgidir/connect.pl HTTP 1.1

Content-Type: application/x-www-form-urlencoded

Content-Length: 27

пустая строка

login=Ivanov&password=stud1

Выполнение программы и параметры, необходимые для ее выполнения могут быть также заданы в атрибуте href гиперссылки (элемента <a>). Запрос будет сформирован и передан на сервер при щелчке мышью по гиперссылке.

Пример 4.6.6. Формирование запроса в гиперссылке:

Гиперссылка в Web-странице имеет следующий вид:

<a href="/cgidir/calcul.pl?a=32&b=12">

Вычисление суммы 32 и 12</a>

При щелчке по этой гиперссылке Web-браузер сформирует следующий запрос:

GET /cgidir/ calcul.pl?a=32&b=12 HTTP 1.1

пустая строка

Сформированный запрос передается Web-серверу, который выполняет поиск программы в реальном каталоге сервера по заданному в запросе имени виртуального каталога. Если программа найдена, она запускается на выполнение под управлением операционной системы сервера.

Чтобы передать полученные в запросе параметры запущенной программе, используется интерфейс общего шлюза – CGI (Common Gateway Interface). Этот интерфейс между Web-сервером и запущенной программой функционирует следующим образом. Если в запросе указан метод GET, то параметры передаются программе через переменные окружения, а при использовании метода POST – через стандартный поток ввода (в языке C и некоторых других языках – файл stdin). После окончания выполнения программы результат ее выполнения (сформированная Web-страница) передается Web-серверу через стандартный выводной поток (в языке C и некоторых других языках – файл stdout).

В процессе выполнения программа может обращаться к данным, размещенным в файлах или базах данных и выполнять над этими данными различные операции: чтение, запись или модификацию.

В принципе, программу с использованием интерфейса CGI можно написать на любом языке программирования, допускающем использование переменных окружения, а также стандартных потоков ввода и вывода (например, C или C++), однако исторически сложилось так, что наиболее часто для написания программ CGI используется интерпретируемый язык Perl. Его реализации имеются для всех операционных систем (ОС), используемых на сервере (основные ОС – это Windows, а также ОС семейств Unix и Linux).

Аналогичным образом могут использоваться программы специального вида (сервлеты), написанные на языке Java, однако в этом случае программы должны быть предварительно установлены в специальный каталог (контейнер), поэтому для сервлетов используется специальный сервер, например, Sun Java System Application Server, реализации которого существуют для ОС Windows, Linux и Sun Solaris.

Сформированная Web-страница по сети передается Web-сервером Web-браузеру, который выводит ее на экран, при необходимо обращаясь с запросами к Web-серверу для получения элементов Web-страницы, хранящихся в отдельных файлах: изображений, внешних таблиц стилей, внешних сценариев и т.д.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: