Переменные окружения — очень важный механизм взаимодействия веб-сервера с предобработчиками запросов. При получении HTTP-запроса веб-сервер формирует переменные окружения, занося в них различную информацию: IP-адрес клиента, запрашиваемый документ, параметры запроса и т.п. При передаче управления какому-нибудь предобработчику последний имеет доступ к переменным окружения веб-сервера, следовательно, ему доступна выше перечисленная информация. Давайте рассмотрим основные переменные окружения веб-сервера Apache:
SERVER_NAME — содержит доменное имя сервера. Apache устанавливает конкретное имя или виртуальный хост, по которому обратился клиент;
SERVER_ADDR — IP-адрес сервера. Устанавливается адрес, по которому выполнил соединение клиент;
SERVER_PORT — порт сервера. Устанавливается порт, по которому выполнил соединение клиент (тот самый порт, который по умолчанию 80 для веб-серверов);
REMOTE_ADDR — IP-адрес клиента;
DOCUMENT_ROOT — корневой каталог веб-сервера (либо текущего виртуального хоста);
REQUEST_METHOD — тип HTTP-запроса;
REQUEST_URI — путь к запрашиваемому документу (то, что передается вторым параметром в первой строке HTTP-запроса);
QUERY_STRING — строка параметров запроса (об этом поподробнее поговорим в следующей статье);
HTTP_HOST — содержит значение заголовка Host HTTP-запроса. В большинстве случаев совпадает с SERVER_NAME;
HTTP_USER_AGENT — содержит значение заголовка User-Agent HTTP-запроса. В этом заголовке клиент передает информацию о себе: версию операционной системы, браузера, и т.д.;
HTTP_REFERER — содержит значение заголовка Referer HTTP-запроса (об этом скоро будет отдельная статья).
К переменным окружения Apache возможен доступ внутри PHP-скриптов. Все они находятся в глобальном PHP-массиве $_SERVER.