Шаг 153.
Переменные среды CGI

    На этом шаге мы рассмотрим переменные среды CGI.

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

Таблица 1. Переменные среды CGI
Переменная среды Описание
GATEWAY_INTERFACE Версия CGI, которую использует сервер
SERVER_NAME Доменное имя или IP-адрес сервера
SERVER_SOFTWARE Имя и версия программы-сервера, отвечающей на запрос клиента (например, Apache 1.3)
SERVER_PROTOCOL Имя и версия информационного протокола, который был использован для запроса (например, HTTP 1.0)
SERVER_PORT Номер порта компьютера, на котором работает сервер (по умолчанию 80)
REQUEST_METHOD Метод, использованный для выдачи запроса (GET, POST)
PATH_INFO Дополнительная информация о пути
PATH_TRANSLATED Та же информация, что и в переменной PATH_INFO с префиксом, задающим путь к корневому каталогу дерева Web-документов
SCRIPT_NAME Относительное маршрутное имя CGI-сценария (например, /cgi-bin/program.pl)
DOCUMENT_ROOT Корневой каталог дерева Web-документов
QUERY_STRING Строка запроса - информация, переданная в составе URL-запроса после символа "?"
REMOTE_HOST Имя удаленной машины, с которой сделан запрос
REMOTE_ADDR IP-адрес удаленной машины, с которой сделан запрос
REMOTE_USER Идентификационное имя пользователя, посылающего запрос
CONTENT_TYPE Медиа-тип данных запроса, например, "text/html"
CONTENT_LENGTH Количество байт в теле запроса, переданных в CGI-программу через стандартный ввод
HTTP_HOST Хост-имя компьютера, на котором работает сервер
HTTP_FROM Адрес электронной почты пользователя, направившего запрос
HTTP_ACCEPT Список медиа-типов, которые может принимать клиент
HTTP_USER_AGENT Браузер, которым клиент пользуется для выдачи запроса
HTTP_REFERER URL документа, на который клиент указывал перед обращением к CGI-программе


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

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

#! /usr/bin/perl
print "Content-type:text/html\n\n";
print "<html>\n";
print "<head><title>Переменные среды</title></head>\n";
print "<body><h2>Переменные среды</h2>\n";
print "<hr><pre>\n";
foreach $name (sort(keys %ENV))
{ 
  print "$name: $ENV{$name}\n";
}
print "<hr></pre>\n";
print "</body></html>\n";
Текст этого примера можно взять здесь.

    Результат работы скрипта изображен на рисунке 1.


Рис.1. Результат работы скрипта

    На следующем шаге мы рассмотрим обработку данных формы.




Предыдущий шаг Содержание Следующий шаг