Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Листинг 7.3. Файл chap7\viewenv\test. bat




Листинг 7.2. Файл chap7\viewenv\viewenv. htm

<HTML>

<HEAD>

<TITLЕ>Перегляд переменных середовища</ТITLЕ>

</HEAD>

<BODY BGCOLOR=#FFFFFF>

<Н1>Перегляд переменных середовища</H1>

<P>>Для перегляду переменных середовища, переданих програмі CGI, натисніть кнопку &quot;View&quot;

<FORM METHOD=GET ACTION="http://saturn/frolov-cgi/test.bat?param1">

<INPUT TYPE=SUBMIT VALUE="View">

</FORM>

</BODY>

</HTML>

 

Форма виглядає так, як це показано на мал. 7.3.

Мал. 7.3. Форма для запуску програми CGI перегляду значень переменных середовища

Після імені програми CGI через розділювальний символ? зазначено рядок параметрів param1, що може бути отримана і проаналізована програмою CGI.

Вихідний текст програми CGI приведений у листинге 7.3.

 

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.

 




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 420; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.019 сек.