Иллюстрированный самоучитель по Perl

       

Переменные среды CGI


В зависимости от метода данные формы передаются в CGI-программу или через стандартный ввод (POST), или через переменную среды QUERY_STRING (GET). Помимо этих данных CGI-программе доступна и другая информация, поступившая от клиента в заголовках запроса или предоставленная Web-сервером. Эта информация сохраняется в переменных среды UNIX. С некоторыми из них мы уже познакомились ранее. В табл. 15.1 перечислены переменные, обычно используемые в CGI.

Таблица 15.1. Переменные среды CGI



Переменная среды

Описание

GATEWAYJNTERFACE

Версия CGI, которую использует сервер

SERVER_NAME

Доменное имя или IP-адрес сервера

SERVER_SOFTWARE

Имя и версия программы-сервера, отвечающей на запрос клиента (например, Apache 1 .3)

SERVER_PROTOCOL

Имя и версия информационного протокола, который был использован для запроса (например, HTTP 1 .0)

SERVER_PORT

Номер порта компьютера, на котором работает сервер (по умолчанию 80)

REQUEST_METHOD

Метод, использованный для выдачи запроса (GET, POST)

PATHJNFO

Дополнительная информация о пути

PATHJRANSLATED

Та же информация, что и в переменной PATHJNFO с префиксом, задающим путь к корневому каталогу дерева Web-документов

SCRIPT_NAME

Относительное маршрутное имя CGI-сценария (например, /cgi-bin/program.pl)

DOCUMENT_ROOT

Корневой каталог дерева Web-документов

QUERY_STRING

Строка запроса— информация, переданная в составе URi запроса после символа "?"

REMOTE_HOST

Имя удаленной машины, с которой сделан запрос

REMOTE_ADDR

IP-адрес удаленной машины, с которой сделан запрос

REMOTE_USER

Идентификационное имя пользователя, посылающего запрос

CONTENT_TYPE

Медиа-тип данных запроса, например, "text/html".

CONTENT_LENGTH

Количество байт в теле запроса, переданных в CGI-программу через стандартный ввод

HTTP_HOST

Хост-имя компьютера, на котором работает сервер

HTTP_FROM

Адрес электронной почты пользователя, направившего запрос

HTTP_ACCEPT

Список медиа-типов, которые может принимать клиент

HTTP_USER_AQENT

Браузер, которым клиент пользуется для выдачи запроса

HTTP_REFERER

URL документа, на который клиент указывал перед обращением к CGI-программе

<


Имена переменных среды CGI на разных Web-серверах могут различаться. Следует обратиться к документации на соответствующий сервер.

CGI-программа на языке Peri имеет доступ к переменным среды через специальный предопределенный хеш-массив %ENV, к элементам которого можно обратиться по ключу, совпадающему с именем переменной среды. Ниже приведены пример CGI-сценария, формирующего HTML-документ с информацией о всех установленных переменных среды, и отображение этого документа в окне браузера.

#!/usr/bin/perl

print "Content-type:text/html\n\n";

print "<html>\n";

print "<head><title>Преременные cpeды</titlex/head>\n";

print "<bоdу><h2>Переменные среды</h2>\n";

print "<hrxpre>\n";

foreach $name (sort(keys %ENV))

{

print "$name: $ENV($name}\n";

}

print "<hrx/pre>\n";

print "</bodyx/html>\n";

Рис 15.3. Информация о переменных среды CGI




Содержание раздела