$_SERVER введен начиная с версии PHP 4.1.0. В предыдущих версиях использовался $HTTP_SERVER_VARS. $_SERVER это массив переменных создаваемый web-сервером. Нет гарантии, что каждый web-сервер будет предоставлять все нижеперечисленные переменные, сервер может опустить некоторые позиции или добавить новые, здесь не указанные. $_SERVER доступен во всех областях видимости скрипта, то есть не нужно писать global $_SERVER для доступа к нему внутри функций и методов, как это делалось с $HTTP_SERVER_VARS.
Доступ к переменным осуществляется также, как в любом ассоциативном массиве: $_SERVER['имя переменной'].
PHP_SELF
Имя файла исполняемого в данный момент скрипта; относительно document root. Например, $_SERVER['PHP_SELF'] в скрипте с адресом http://example.com/test.phpr даст /test.php. Если PHP запущен как процессор командной строки, эта переменная недоступна.
ARGV
Массив аргументов, передаваемых скрипту. Если скрипт работает из командной строки, это даёт доступ, в стиле С, к параметрам командной строки. Если вызывается через метод GET, будет содержать строку запроса.
ARGC
Содержит количество параметров командной строки, передаваемых скрипту (если запущен из командной строки).
GATEWAY_INTERFACE
Содержит вариант спецификации CGI, используемой сервером, например CGI/1.1.
SERVER_NAME
Имя хоста сервера, на котором выполняется текущий скрипт. Если скрипт запущен на виртуальном хосте, это будет значение, определённое для данного виртуального хоста.
Например, у текущей страницы - easywebscripts.net
SERVER_SOFTWARE
Строка-идентификатор сервера, выдаваемая в шапках (headers) при ответах на запросы.
Пример: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4
SERVER_PROTOCOL
Имя и версия информационного протокола, по которому страница запрошена, например, HTTP/1.0
REQUEST_METHOD
Какой метод запроса был использован для доступа к странице GET, HEAD, POST, PUT.
QUERY_STRING
Строка запроса, если имеется, по которому был выполнен доступ к странице.
DOCUMENT_ROOT
Корневая директория документов, под которой выполняется текущий скрипт, как определено в файле конфигурации сервера.
HTTP_ACCEPT
Содержимое шапки Accept: из текущего запроса, если имеется.
Пример: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_CHARSET
Содержимое шапки Accept-Charset: из текущего запроса, если имеется.
Пример: utf-8.
HTTP_ACCEPT_ENCODING
Содержимое шапки Accept-Encoding: из текущего запроса, если имеется.
Пример: gzip.
HTTP_ACCEPT_LANGUAGE
Содержимое шапки Accept-Language: из текущего запроса, если имеется.
Пример: en.
HTTP_CONNECTION
Содержимое шапки Connection: из текущего запроса, если имеется.
Пример: Keep-Alive.
HTTP_HOST
Содержимое шапки Host: из текущего запроса, если имеется.
Например, у текущей страницы - easywebscripts.net
HTTP_REFERER
Адрес страницы (если имеется), с которой был осуществлен переход на текущую страницу. Устанавливается пользовательским агентом (браузером). Агенты могут устанавливать данное значение некорректно - полностью доверять ему нельзя! Можно использовать для примитивной защиты проверка подлинности
HTTP_USER_AGENT
Содержимое шапки User_Agent: из текущего запроса, если имеется. Проще говоря это браузер пользователя.
Пример: Mozilla/4.5
(X11; U; Linux 2.2.9 i586). Помимо прочего, вы можете использовать это значение с get_browser() для приспособления вывода вашей страницы под разные браузеры.
[b]REMOTE_ADDR
IP-адрес, с которого пользователь просматривает текущую страницу.
REMOTE_PORT
Порт на пользовательской машине для соединения с web-сервером.
SCRIPT_FILENAME
Абсолютный путь к файлу исполняемого в данный момент скрипта.
SERVER_ADMIN
Значение, заданное в директиве SERVER_ADMIN (для Apache) в файле конфигурации web-сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определённое для данного виртуального хоста.
SERVER_PORT
Порт на серверной машине, используемый web-сервером для соединения. По умолчанию это 80; использование SSL, к примеру, изменит это значение на то, которое вы определили для секретного порта HTTP.
SERVER_SIGNATURE
Строка, содержащая версию сервера и имя виртуального хоста, добавленная к генерируемым сервером страницам, если эта возможность включена.
PATH_TRANSLATED
Путь файловой системы (не document root) к текущему скрипту, после того как сервер выполнил отображение virtual-to-real.
SCRIPT_NAME
Путь к текущему скрипту. Это используется в страницах, которым нужно указывать на самих себя. $_SERVER['SCRIPT_FILENAME'] - $_SERVER['SCRIPT_NAME'] = document root
REQUEST_URI
URI, который был задан для доступа к данной странице, например, /index.htm.
PHP_AUTH_USER
При работе под Apache-модулем и выполнении HTTP-аутентификации, в эту переменную устанавливается username, предоставляемое пользователем.
PHP_AUTH_PW
При работе под Apache-модулем и выполнении HTTP-аутентификации, в эту переменную устанавливается password, предоставляемый пользователем.
PHP_AUTH_TYPE
При работе под Apache-модулем и выполнении HTTP-аутентификации, в эту переменную устанавливается тип аутентификации.