Переменные окружения 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-адрес компьютера, обратившегося к прокси-серверу. Если данное поле уже содержит значение, то новое значение будет добавлено через запятую.
|
|