Листинг 7.3. Файл chap7\viewenv\test. bat
echo Content-type: text/plain
echo
echo %0 %1 %2 %3
set
У першому рядку програма виводить у стандартний потік висновка STDOUT рядок заголовка HTTP. Цей рядок описує тип переданих даних як text/plain, тобто звичайний текст без оформлення з використанням операторів HTML
Другий рядок виводить у стандартний потік висновка порожній рядок, що відокремлює заголовок HTTP від переданих даних.
Третій рядок виводить шлях до завантажувального файла програми CGI і параметри, отримані їй при запуску.
І нарешті, в останньому рядку визивається команда SET, що виводить у потік STDOUT значення весь переменных середовища, визначених у системі перед запуском програми.
Результат роботи нашої програми CGI показаний на мал. 7.4.
Мал. 7.4. Результат роботи програми CGI, що відображає значення переменных середовища
Нижче приведений повний листинг, отриманий при роботі нашої програми CGI:
g:\iisdir\wwwroot\guest>echo
ECHO is on.
g:\iisdir\wwwroot\guest>echo g:\iisdir\wwwroot\guest\test.bat param1?
g:\iisdir\wwwroot\guest\fst.bat param1?
g:\iisdir\wwwroot\guest>set
AUTH_TYPE=
ComSpec=D:\WINNT35\system32\cmd.exe
GATEWAY_INTERFACE=CGI/1.1
HTTP_ACCEPT=image/gif, image/x-xbitmap, image/jpeg, image/pipeg, */*
HTTP_REFERER=file:C:\!wbsrv\Sample\Chap7\viewnv\viewnv.HTM
HTTP_ACCEPT_LANGUAGE=, en
HTTP_UA_PIXELS=1024x768
HTTP_UA_COLOR=color16
HTTP_UA_OS=Windows 95
HTTP_UA_CPU=x86
HTTP_USER_AGENT=Mozilla/2.0 (compatible; MSIE 3.0; Windows 95)
HTTP_HOST=frolov
HTTP_CONNECTION=Keep-Alive
CONTENT_LENGTH=0
CONTENT_TYPE=
PATH=D:\WINNT35\system32;D:\WINNT35;
PATH_INFO=/frolov-cgi/test.bat
PATH_TRANSLATED=g:\iisdir\wwwroot\guest\test.bat
PROMPT=$P$G
QUERY_STRING=param1?
REMOTE_ADDR=154.101.200.255
REMOTE_HOST=154.101.200.255
REMOTE_USER=
REQUEST_METHOD=GET
SCRIPT_NAME=/frolov-cgi/test.bat
SERVER_NAME=154.100.100.10
SERVER_PROTOCOL=HTTP/1.0
SERVER_PORT=80
SERVER_SOFTWARE=Microsoft-Internet-Information-Server/1.O
SystemRoot=D:\WINNT35
windir=D:\WINNT35
У цьому листинге відображаються перемінне середовище, визначені спеціально для програми CGI сервером Microsoft Internet Information Server, а також перемінне середовище, стандартні для операційної системи Microsoft Windows NT.
Набір перемінних, утворюваних при запуску програми CGI, залежить від конкретної реалізації серверу WWW.
AUTH_TYPE
Технологія WWW припускає захист сторінок HTML, коли доступ до окремих сторінок дається тільки одиничним користувачам при пред'явленні пароля. При цьому використовується так називана система аутентификации, або перевірки істинності ідентифікатора користувача.
Переменная середовища AUTH_TYPE містить тип ідентифікації, що застосовується сервером. Наприклад, для серверу WWW типу Microsoft Information Server при вмиканні аутентификации в цей перемінної буде зберігатися рядок NTLM.
GATEWAY_INTERFACE
У цей перемінної знаходиться версія інтерфейсу CGI, із яким працює даний сервер. У даному випадку інтерфейс має версію 1.1.
НТТР_АССЕРТ
У цей перемінної перераховані типи даних MIME, що можуть бути прийняті навігатором від серверу WWW. З приведеного вище листинга очевидно, що сервер Microsoft Internet Information Server може передати навігатору Microsoft Internet Explorer (який був використаний для роботи з програмою CGI) графічні зображення (image) у форматі gif, jpeg, pjpeg, x-xbitmap. Докладно ці типи даних описані в специфікації протоколу MIME, розгляд якої виходить за рамки курсу.
HTTP_REFER
У перемінну HTTP_REFER записується адреса URL документа HTML, що ініціював роботу програми CGI. У даному випадку цей документ був записаний на локальному диску комп'ютера в каталозі C:\! websrv\Sample\Chap7\viewenv.
HTTP_ACCEPT_LANGUAGE
Перемінна HTTP_ACCEPT_LANGUAGE містить ідентифікатор кращої національної мови для одержання відповіді від серверу WWW. У даному випадку це англійська мова, хоча сервер може надіслати відповідь на будь-якій національній мові.
HTTP_UA_PIXELS
Дозвіл видеоадаптера, встановлене в комп'ютері користувача.
HTTP_UA_COLOR
Припустима кількість цвітів у системі користувача.
HTTP_UA_OS
Операційна система, під керуванням якої працює навігатор.
HTTP_UA_CPU
Тип центрального процесора в комп'ютері віддаленого користувача.
HTTP_USER_AGENT
У цю перемінну записується ім'я навігатора, за допомогою якого запрашивается документ HTML. Аналізуючи це ім'я, програма CGI може приймати рішення про використання тих або інших розширень стандарту мови HTML, припустимого для конкретного навігатора.
HTTP_HOST
Ім'я вузла, на якому працює сервер WWW.
HTTP_CONNECTION
Тип з'єднання.
HTTP_ACCEPT_ENCODING
Метод кодування, що може бути використаний навігатором для формування відповіді серверу WWW.
HTTP_AUTHORIZATION
Інформація авторизації від навігатора. Використовується навігатором для власної аутентификации в сервері WWW.
HTTP_FROM
Ім'я користувача у виді, як воно було зареєстровано при настроюванні навігатора. Застосовується формат адрес електронної пошти.
HTTP_PRAGMA
Спеціальні команди серверу WWW.
CONTENT_LENGTH
Кількість байтів даних, що програма CGI повинна одержати від навігатора.
CONTENT_TYPE
Тип даним, присланих навігатором.
PATH_INFO
Шлях до виртуальному каталога, у якому знаходиться програма CGI.
Як правило, при настроюванні серверу WWW адміністратор виділяє один або декілька каталогів для збереження розширень серверу у виді програм CGI або ISAPI. Для файлів, записаних у такі каталоги, установлюється доступ на запуск.
Адміністратор створює таблицю відповідності фізичних каталогів і виртуальных, визначаючи права доступу до виртуальным каталогів за допомогою програми настроювання параметрів серверу WWW.
PATH_TRANSLATED
Фізичний шлях до програми CGI.
QUERY_STRING
Рядок параметрів, зазначений у формі після адреси URL програми CGI після розділювального символу ? .
REMOTE_ADDR
Адреса IP вузла, на якому працює навігатор віддаленого користувача.
REMOTE_HOST
Доменне ім'я вузла, на якому працює навігатор віддаленого користувача. Якщо ця інформація недоступна, наприклад, для вузла не визначений доменна адреса, замість доменного імені вказується адреса IP, як у перемінної REMOTE_ADDR.
REMOTE_USER
Ім'я користувача, що вживається навігатором для аутентификации. Застосовується тільки в тому випадку, якщо сервер WWW спроможний працювати з аутентификацией і програма CGI відзначена як захищена.
REQUEST. METHOD
Метод доступу, що використовується для передачі даних від навігатора серверу WWW. У даних прикладах застосовуються методи доступу GET і POST, хоча протокол HTTP припускає застосування й інші методи доступу, наприклад PUT і HEAD.
SCRIPT_NAME
У цю перемінну записується шлях до виртуальному каталога й ім'я програми CGI. Аналізуючи цю перемінну, програма CGI може визначити шлях до свого завантажувального файла.
SERVER. NAME
Доменне ім'я серверу WWW або адреса IP серверу WWW, якщо доменне ім'я недоступно або не визначене.
SERVER_PROTOCOL
Ім'я і версія протоколу, що застосовується для виконання запиту до програми CGI.
SERVER_PORT
Номер порту, на якому навігатор посилає запити серверу WWW.
SERVER_SOFTWARE
Назва і версія програмного забезпечення серверу WWW. Версія випливає після назви і відокремлюється від останнього символом /.
REMOTEJDENT
Ім'я, із котрим користувач підключився до серверу WWW. Застосовується тільки в тому випадку, якщо сервер WWW спроможний підключати користувачів по іменах.
7.5. Приклади програм CGI
У цьому поділі приведені приклади нескладних програм CGI, що демонструють динамічне створення документів HTML і опрацювання даних, уведених за допомогою форм.
7.5.1. Програма CGIHELLO
Програма CGIHELLO являє собою найпростішу програму CGI, що запускается за допомогою кнопки у формі, повертаючи навігатору документ HTML, створений динамічно.
Ця програма гарна для перевірки можливості запуску програм CGI на вашому сервері WWW або на сервері вашого постачальника послуг Internet. Тому що вона дуже проста, існує трохи причин, по яких вона могла б не працювати. Це неправильне настроювання прав доступу до виртуальному каталога, що містить завантажувальний модуль програми CGI, а також неправильне посилання на цей каталог у параметрі ACTION оператора <FORM>.
Вихідний текст документа, у якому визначена форма, подана в листинге 7.4.
Дата добавления: 2015-04-19; просмотров: 756;