Переменные окружения CGI
Непосредственно перед запуском сценария сервер передает ему некие переменные окружения с информацией. В определенных переменных содержатся некоторые заголовки, но, как уже говорилось, не все (получить все заголовки нельзя). Переменные окружения в языке PHP можно использовать как самые обыкновенные переменные. Переменные окружения делятся на четыре большие группы:
- Формируемые сервером переменные;
- Специальные переменные сервера Apache;
- Переменные HTTP-полей запроса;
- Переменные SSL-соединения (защищенного соединения).
Рассмотрим первые три группы переменных окружения:
Формируемые сервером переменные:
Переменная окружения |
Описание переменной окружения |
AUTH_TYPE |
Используется схема аутентификации. Обычно 'BASIC' |
CONTENT_LENGTH |
Длина содержимого, например, text/html |
CONTENT_TYPE |
MIME-тип содержимого, например, text/html |
GETAWAY_INTERFACE |
Версия CGI, например CGI/1.1 |
PATH_INFO |
HTTP-путь к сценарию |
PATH_TRANSLATED |
Полный путь к сценарию |
REMOTE_ADDR |
IP-адрес запрашиваемого компьютера-клиента |
REMOTE_HOST |
Доменное имя запрашивающего компьютера (если доступно). Доменное имя определяется web-сервером с помощью службы DNS. Директива HostNameLookups сервера Apache разрешает (или запрещает) преобразование IP-адреса в доменное имя. |
REMOTE_PORT |
Порт, закрепленный за браузером для получения ответа от сервера |
REMOTE_USER |
Имя пользователя, прошедшего аутентификацию |
QUERY_STRING |
Строка переданных серверу параметров |
SERVER_ADDR |
IP-адрес сервера |
SERVER_NAME |
Доменное имя сервера. Определяется директивой ServerName файла конфигурации |
SERVER_PORT |
TCP-порт Web-сервера. Обычно 80 |
SERVER_PROTOCOL |
Версия протокола HTTP. Например, HTTP/1.1 |
SERVER_SOFTWARE |
Программное обеспечение сервера |
SCRIPT_NAME |
HTTP-путь к сценарию |
SCRIPT_FILENAME |
Имя файла сценария в файловой системе сервера (физический путь). Например, /var/www/cgi-bin/script.cgi |
Специальные переменные сервера Apache:
Переменная окружения |
Описание переменной окружения |
DOCUMENT_ROOT |
Физический путь к корневому www-каталогу сервера. Например, /var/www.html/ |
SERVER_ADMIN |
Адрес электронной почты администратора сервера |
SERVER_SIGNATURE |
Подпись сервера. Например, "Apache/1.3.3 Server at www.somefirm.com Port 80" |
Переменные HTTP-полей запроса:
Переменная окружения |
Описание переменной окружения |
HTTP_HOST |
Имя виртуального хоста, которому адресован запрос |
HTTP_USER_AGENT |
Программное обеспечение удаленного пользователя. Обычно данная переменная окружения содержит название и версию браузера |
HTTP_ACCEPT |
Список поддерживаемых клиентов типов содержимого. В последнее время вместо списка браузеры возвращают значение *.*, что означает "все типы" |
HTTP_ACCEPT_LANGUAGE |
Список поддерживаемых языков в порядке предпочтения, например, ru, en |
HTTP_ACCEPT_ENCODING |
Список поддерживаемых методов сжатия |
HTTP_ACCEPT_CHARSET |
Список поддерживаемых кодировок |
HTTP_CONNECTION |
Тип соединения. Возможны два варианта:
- Keep-alive - если после ответа на запрос не нужно разрывать соединение;
- Close - если нужно закрыть соединение сразу после ответа на запрос.
|
HTTP_REFERER |
Значение поля REFERER. В этом поле браузер передает URL ресурса, который ссылается на наш сервер. Например, если пользователь перешел на сайт со страницы http://www.somehost.com/page.php, то значение поля REFERER будет http://www.somehost.com/page.php. |
HTTP_X_FORWARDED_FOR |
Если пользователь работает через прокси-сервер, то в этом поле будет IP-адрес компьютера, обратившегося к прокси-серверу. Если данное поле уже содержит значение, то новое значение будет добавлено через запятую. |
|