При помощи переменных данного типа шлюз узнает полную информацию о запросе к нему. Т.е. каким методом будут передаваться данные, их тип, длину и т.д.
- AUTH_TYPE
- Тип авторизации используемой сервером. Например:
Basic
Подробнее об авторизации в сервере Apache читайте в "Шаг 18 - Авторизация посетителей".
- CONTENT_FILE
- Путь к файлу с полученными данными. Используется только в серверах под Windows. Например:
c:\website\cgi-temp\103421.dat
- CONTENT_LENGTH
- Длинна переданной информации в байтах. То бишь сколько надо считать байтов из stdin. Например:
10353
- CONTENT_TYPE
- Тип содержимого посланного серверу клиентом. Например:
text/html
- OUTPUT_FILE
- Файл для вывода данных, используется только серверами под Windows. Аналогично CONTENT_FILE.
- PATH_INFO и PATH_TRANSLATED
- В современных веб-серверах появилась возможность после имени скрипта
указывать еще какой-то определенный путь. Для чего он нужен скрипту я пока не очень понимаю.
Но видимо некоторым он сможет пригодиться. Эти переменные работают следующим образом.
Предположим существует скрипт с именем 1.cgi в каталоге сервера /cgi-bin,
тогда при вызове скрипта в таком виде:
http://.../cgi-bin/1.cgi/dir1/dir2
данные переменные установятся следующим образом:
PATH_INFO=/dir1/dir2
PATH_TRANSLATED=/home/httpd/html/dir1/dir2
Помоему видно, что эти переменные будут указывать на папку относительно корневой
директории сервера. При этом PATH_TRANSLATED будет содержать абсолютный путь
до этого каталога на диске сервера. В данном случае корневым каталогом сервера считается
/home/httpd/html/, и еще замечу, что это путь в Unix системах.
Под dos/win системами переменная PATH_INFO не изменится, а
PATH_TRANSLATED будет содержать d:\apache\htdocs\dir1\dir2 (в
данном случае корнем сервера является директория d:\apache\htdocs\).
- QUERY_STRING
- Содержит данные переданные через URL. Такие данные указываются
после имени шлюза и знака ?. Пример:
http://.../cgi-bin/1.cgi?d=123&name=kostia
тогда переменная QUERY_STRING будет содержать
d=123&name=kostia
и еще незабывайте, что данные передаваемые таким образом кодируются методом URL.
- REMOTE_ADDR
- Содержит IP адрес пользователя пославшего запрос шлюзу. Если Вы обращаетесь
к любому шлюзу в интернете, то данная переменная будет содержать ваш IP адрес. Пример:
192.168.1.36
- REMOTE_HOST
- Содержит ваше доменное имя, при условии, что вы прописаны на каком-либо DNS сервере.
Например, если ваш Dial-UP провайдер регистрирует все свои динамические IP адреса на DNS сервере, то
при обращении к шлюзу, эта переменная может содержать примерно следующее:
d6032.dialup.cornell.edu
или
dial57127.mtu-net.ru
или
ppp-130-66.dialup.metrocom.ru
(брал прямо из логов сервера :-)
- REQUEST_METHOD
- Мы раньше говорили об этой переменной. Она содержит метод передачи данных шлюзу: GET или POST.
- REQUEST_LINE
- Содержит строку из запроса протокола HTTP. Например:
GET /cgi-bin/1.cgi HTTP/1.0
- SCRIPT_NAME
- Содержит имя вызванного скрипта. Например: 1.cgi.
Все эти переменные, надеюсь, обеспечат Вам все самые необходимые данные о запросе к шлюзу.