Лекция: Как работает CGI программа.

CGI программа всегда размещается на диске сервера до ее выполнения. Web — сервер требует размещения CGI — приложения в директорию cgi-bin, однако системный администратор может выделить вам и другой каталог. Простейший способ вызова CGI программы состоит в указании броузеру URL этой программы. Например, если вы хотите выполнить программу test.pl на локальном web — сервере, вы должны ввести URL: localhost/cgi-bin/test.pl. Здесь cgi-bin представляет относительный адрес, к которому может добавляться остальной путь, напрмер: /usr/local/etc/httpd/cgi-bin/test.pl или /website/cgi-shl/test.pl.

Есть и другой способ вызова CGI программы. Вы можете поставить гиперссылку, например на кнопку формы

<A HREF=«cgi-bin/test.pl»>Click here to run a CGI program</A>

Информацию для CGI программы можно передать, добавляя ее к стандартному URL. Например <A HREF=«cgi-bin/search.pl/root/document»> Search the Document Directory</A>

Информация о пути доступна через переменную окружения PATH_INFO.

Для поиска может быть использован знак вопроса

<A HREF=«cgi-bin/search.pl?Wine+1993»>Search for 1993 Wines</A>

Информация после знака вопроса доступна через переменную окружения QUERY_STRING.

Приведем пример простейшей CGI программы:

#!/usr/local/bin/perl -w

use strict;

print «Content-type: text/plain\n\n»;

print «Hello, World.\n»;

Файл test.pl с этой программой помещается в каталог cgi-bin web сервера. Затем задается URL вида: localhost/cgi-bin/test.pl

Результат: Hello, World.

При выполнении CGI программы автоматически открываются стандартные файлы STDIN — ввода информации из HTML формы, STDOUT — вывода в окно броузера, STDERR — вывода сообщений в log — файл сервера.

Первая строка вывода для CGI программы должна содержать заголовок HTTP, который сообщает броузеру клиента какой тип сообщения будет послан на STDOUT: print(«Content Type: text/html\n\n»);

Могут быть другие заголовки, например Location определяет какую из страниц открыть: print(«Location: $nextPage\n\n»);

CGI и переменные окружения

Переменные окружения доступны CGI программе через переменную %ENV. Могут использоваться следующие переменные окружения:

CONTENT_LENGTH — содержит длину записи, передаваемой скрипту через STDIN файл. Используется в методе POST.

CONTENT_TYPE — содержит тип данных, доступных через STDIN.

HTTP_ACCEPT — содержит лист MIME типов программ броузера

HTTP_USER_AGENT — тип броузера пользователя

HTTP_FROM — содержит email адрес пользователя.

PATH_TRANSTLATED — путь к скрипту

REMOTE_ADDR — числовой адрес пользователя

REMOTE_HOST — имя домена сайта из которого коннектится пользователь.

REMOTE_USER — имя пользователя.

REQUEST_METHOD — содержит метод «GET» или «POST»

SCRIPT_NAME — путь к скрипту.

SERVER_NAME имя хоста сервера.

SERVER_PORT -содержит прослушиваемый порт, стандартно 80.

SERVER_PROTOCOL имя протокола сервера.

еще рефераты
Еще работы по информатике