Непосредственно перед запуском сценария сервер передает ему некие переменные окружения с информацией. В определенных переменных содержатся некоторые заголовки, но, как уже говорилось, не все (получить все заголовки нельзя). Переменные окружения в языке PHP можно использовать как самые обыкновенные переменные. Переменные окружения делятся на четыре большие группы:
Рассмотрим первые три группы переменных окружения:
Формируемые сервером переменные:
Переменная окружения
Описание переменной окружения
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-адрес компьютера, обратившегося к прокси-серверу. Если данное поле уже содержит значение, то новое значение будет добавлено через запятую.