Набор символов A href обозначает начало тега ссылки. За этим набором символов следует адрес (или назначение), заключенный в двойные кавычки. Слово Environment отображается на экране; этим определяется область, в результате щелчка на которой выполняется сценарий printenv.cgi. Тег обозначает конец описания ссылки.
Пример файла main.shtml:
$ pg main.shtml
Last modified:
THE MAY DAY OPERATIONS CENTER
Stand‑by to stand‑to
This page has been visited times
To see your environment settings just click
Ниже приведен сценарий printenv.cgi, выводящий на печать значения параметров среды. В сценарии используется команда env. Тег
применяется для сохранения форматирования (вывода табуляции и пробелов).
$ pg printenv.cgi
#!/bin/sh
# printenv.cgi
# вывод на печать настроек Web–сервера с помощью команды env
echo "Content‑type: text/html"
echo ""
echo "
"
env
echo ""
Рис. 29.5. Страница, включающая ссылку для просмотра переменных среды |
На рис. 29.5 показано, как выглядит страница с добавленной ссылкой.
После щелчка на ссылке отображаются настройки среды (рис. 29.6). Эти настройки могут слегка отличаться в каждом конкретном случае. При выполнении различных сценариев возможно изменение настроек с целью адаптации к новой среде.
Рис. 29.6. Страница, отображающая значения текущих переменных
В табл. 29.2 представлены наиболее часто применяемые переменные среды cgi. Значения некоторых из этих переменных могут быть просмотрены с помощью команды env либо set.
Таблица 29.2. Общие переменные cgi Web–сервера
DOCUMENT ROOT | Основной каталог Web–сервера, куда загружаются документы |
GATEWAY_INTERFACE | Редакция cgi |
HTTP_ACCEPT | Другие подтвержденные типы MIME |
HTTP_CONNECTION | Предпочитаемое подключение HTTP |
HTTP_HOST | Имя локального хост–компьютера |
HTTP USER AGENT | Клиентский броузер |
REMOTE_HOST | Удаленный хост–компьютер |
REMOTE_ADDR[3] | IP–адрес удаленного хост–компьютера |
REQUEST_METHOD | Метод, используемый для передачи информации |
SCRIPT FILENAME | Абсолютное имя пути сценария cgi |
SCRIPT_NAME | Относительное имя пути сценария cgi |
SERVER_ADMIN | Адрес электронной почты Web–администратора |
SERVER_NAME | Хост–имя, DNS либо IP–адрес сервера |
SERVER_PROTOCOL | Протокол, используемый для реализации соединения |
SERVER_SOFTWARE | Наименование программного обеспечения Web–сервера |
QUERY_STRING | Передаваемые данные из метода GET |
CONTENT_TYPE | Тип MIME |
CONTENT_LENGTH | Количество байтов, передаваемых с помощью метода post |
Для отображения значения переменных можно заключить эти переменные в небольшой сценарий cgi, а затем вызывать данный сценарий в случае, если нужно проверить значение переменной.
$ pg evncgi.cgi
#!/bin/sh
#envcgi.cgi
#вывод на печать настроек web–сервера с помощью команды env
echo "Content‑type: text/html"
echo ""
echo "
"
echo "CGI Test ENVIRONMENTS"
echo "SERVER_SOFTWARE=$SERVER_SOFTWARE"
echo "SERVER_NAME=$SERVER_NAME"
echo "GATEWAY_INTERFACE=$GATEWAY_INTERFACE"
echo "SERVER_PROTOCOL=$SERVER_PROTOCOL"
echo "SERVER_PORT=$SERVER_PORT"
echo "REQUEST_METHOD=$REQUEST_METHOD"
echo "HTTP_ACCEPT=$HTTP_ACCEPT"
echo "PATH_INFO=$PATH_INFO"
echo "PATH_TRANSLATED=$PATH_TRANSLATED"
echo "QUERY_STRING=$QUERY_STRING"
echo "SCRIPT_NAME=$SCRIPT_NAME"