Дополнительные переменные окружения. Список.

advertisement
1
Переменные окружения CGI
DOCUMENT_ROOT
Корневой каталог документов веб-сервера.
Например, если при запросе http://www.my-webserver.ru/ сервер пересылает посетителю файл
d:/www/index.html, значением переменной
DOCUMENT_ROOT будет d:/www. Это обычно
совпадает с тем, что указано в директиве
DocumentRoot конфигурационного файла сервера
Apache.
CONTENT_LENGTH
Длина тела запроса. Обычно это поле
анализируют, если получен запрос типа POST.
CONTENT_TYPE
Тип принятых данных. Например, multipart/formdata.
GATEWAY_INTERFACE
Имя и версия CGI-протокола. Например:
CGI/1.1. Эта переменная может оказаться
полезной, чтобы определить, откуда запущена
программа. Если значение переменной
отсутствует, то программа, скорее всего, вызвана
не через веб, а запущена из командной строки
на сервере.
HTTP_ACCEPT
Список mime-типов, которые способен принять
браузер. Переменная может содержать только
маску */*, либо список значений, разделенных
запятыми: text/html, image/png, image/jpeg,
image/gif, image/x-xbitmap, application/msword.
HTTP_ACCEPT_CHARSET
Список воспринимаемых браузером кодировок.
Например, windows-1251;q=1.0, utf-8;q=1.0, utf16;q=1.0, iso-8859-1;q=0.6, *;q=0.1. Обратите
внимание, что после каждой кодировки указан
ее «вес», который расставляет кодировки
в порядке предпочтения.
HTTP_ACCEPT_ENCODING
Список типов кодирования, которые понимает
браузер. Например: gzip, deflate, x-gzip.
HTTP_ACCEPT_LANGUAGE Список языков, которые принимает браузер.
Например: ru, en.
HTTP_CACHE_CONTROL
Способ кэширования документов (или указание
о его отсутствии). Например: no-cache. В ранних
версиях Netscape Navigator это значение доступно
в переменной HTTP_PRAGMA.
HTTP_CONNECTION
Тип соединения. Например: Keep-Alive.
HTTP_COOKIE
Список пар вида имя=значение, содержащихся
в cookiе для текущей страницы или сервера.
Значения cookie устанавливает веб-сервер,
а браузер клиента сохраняет их и передает
2
серверу при следующих запросах, ведущих
на тот же сервер.
HTTP_HOST
Запрошенное доменное имя. Часто бывает так,
что один и тот же сервер доступен по нескольким
адресам, например, http://www.my-web-server.ru
и http://my-web-server.ru. Переменная примет
значения www.my-web-server.ru и my-webserver.ru, соответственно. Переменную можно
использовать, чтобы автоматически
перенаправлять браузер на другой адрес,
например, если вы приобрели новое, более
красивое, доменное имя.
HTTP_REFERER
Адрес страницы, с которой пользователь попал
на сервер. Например, если на странице
http://www.web-server-1.ru/index.html стоит
ссылка на ресурс http://www.web-server2.ru/index.html, то второй веб-сервер получит
в этой переменной значение http://www.webserver-1.ru/index.html. С помощью переменной
HTTP_REFERER можно узнать, кто ссылается
на ваш сервер. Более того, если посетитель
пришел с поисковой системы, часто
в переменной виден тот запрос, по которому вас
нашли.
HTTP_USER_AGENT
Идентификатор клиентской программы
(браузера) и операционной системы. Значение
этой переменной не стандартизировано
и формируется браузером так, что в ней
содержится имя и версия браузера одновременно
с версией операционной системы. Например,
Microsoft Internet Explorer 6.0 под управлением
Windоws XP передает такую строку: Mozilla/4.0
(compatible; MSIE 6.0; Windows NT 5.1; .NET
CLR 1.0.3705).
QUERY_STRING
Строка запроса. Если пользователь запросил
документ и указал дополнительные параметры,
например, http://www.my-webserver.ru/index.html?var1=name1, переменная
получит значение var1=name. Эта переменная
активно применяется при обработке веб-форм.
REDIRECT_QUERY_STRING Эта и две следующие переменные появляются
в том случае, если при запросе некоего ресурса
веб-сервер выполнил внутреннее
перенаправление, например, на скрипт, который
указан в качестве индексного файла для текущего
каталога, либо при вызове CGI-программы
директивой SSI. В переменной
REDIRECT_QUERY_STING содержатся те же
данные, что и в переменной QUERY_STRING.
3
REDIRECT_STATUS
При перенаправлении в этой переменной указан
код ответа, например, 200.
REDIRECT_URL
Если на сервере выполнено перенаправление, эта
переменная содержит запрошенный URI.
REMOTE_ADDR
IP-адрес пользователя. В том случае, если между
пользователем и веб-сервером находится проксисервер, переменная скорее всего будет содержать
адрес прокси-сервера.
REMOTE_HOST
Имя узла пользователя или его прокси-сервера.
Если эта переменная не установлена, можно
воспользоваться значением переменной
REMOTE_ADDR.
REMOTE_PORT
Номер порта клиента. Если на машине клиента
одновременно работают несколько браузеров,
значение этой переменной окажется различной
для каждого из них. Интересно отметить, что,
например, устаревший ныне браузер Netscape
Navigator 2 увеличивает номер порта при каждом
обновлении страницы.
REQUEST_METHOD
Текущий метод HTTP-запроса. Например: GET
или HEAD.
REQUEST_URI
URI запрошенного документа. Понятие URI
часто путают с URL. Если запрошена страница
http://www.my-web-server.ru/dir/index.html,
переменная примет значение /dir/index.html. Если
в запросе содержится строка запроса
(помещаемая в переменную QUERY_STRING),
она останется и в переменной REQUEST_URI.
SCRIPT_FILENAME
Путь к скрипту на веб-сервере. Переменная
устанавливается, если пользователь запросил
CGI-скрипт или программу, а не html-документ.
Например: d:/www/cgi/2/c2.exe.
SCRIPT_NAME
URI скрипта, если запрошен CGI-скрипт или
программа, а не html-документ. В отличие
от переменной REQUEST_URI, строка запроса
теряется.
SERVER_ADDR
IP-адрес веб-сервера.
SERVER_ADMIN
Адрес электронной почты администратора
сервера. Значение переменной зависит от того,
что указано в файле конфигурации.
SERVER_NAME
Имя сервера. Оно может не совпадать
с доменным именем. Значение этой переменной
указано в конфигурационном файле.
SERVER_PORT
Номер порта веб-сервера, по которому
он ожидает запросы. Наиболее вероятное
4
значение — 80.
SERVER_PROTOCOL
Имя и версия протокола, согласно которому вебсервер общается с клиентом. Например:
HTTP/1.1.
SERVER_SOFTWARE
Название и версия веб-сервера. Здесь также
может содержаться упоминание об операционной
системе. Например: Apache/1.3.14 (Win32).
Дополнительные переменные окружения CGI-скриптов
Для удобства написания нетривиальных CGI-скриптов, сервер добавляет несколько
дополнительных переменных окружения, доступных как для CGI, так и для модулей.
CHARSET
в этой переменной содержится "официальное" название кодировки клиента т.е. той,
в которой документ будет отдан после перекодировки.
SOURCE_CHARSET
Кодировка исходного документа (по мнению сервера). Для CGI-скриптов это
означает, что их вывод должен быть в этом charset.
CHARSET_SERVER_NAME
Имя сервера и номер порта в формате www.domain:1234
Эту переменную пришлось добавить т.к. в переменной HTTP_HOST содержится
то, что сервер получил в заголовке Host:, а в переменной SERVER_PORT - номер
порта, сконфигурированный директивой Port. Что никак не может устроить.
CHARSET_SERVER_PORT
Номер порта к которому был текущий запрос
CHARSET_HTTP_METHOD
http:// или https://. Т.е. полный URL запроса восстанавливается как
${CHARSET_HTTP_METHOD}${CHARSET_SERVER_NAME}${REQUEST_URI}
CHARSET_SAVED_QUERY_STRING
значение переменной QUERY_STRING до перекодировки
CHARSET_SAVED_PATH_INFO
значение переменной PATH_INFO до перекодировки
Переменные CHARSET и SOURCE_CHARSET ставятся сервером только если mod_charset
"включен" (CharsetDisable Off), остальные три переменные ставятся всегда.
Download