2.6.5. Windows CGI нтерфейс.

Огляд

Велика кількість World Wide Web додатків засновано на використанні зовнішніх програм, керованих Web сервером. Використання даних програм дозволяє будувати Web додатка з динамічно обновлюваною інформацією, що зберігається в базах чи даних що генерується в залежності від бізнесів-правил розв'язуваних задач. Для зв'язку між Web сервером і викликуваними програмами широко використовується Common Gateway Interface (CGI), що має реалізації як для Windows-орієнтованих програм, так ідля додатків, що функціонують у середовищі Unix. Даний документ описує Windows-модифікацію інтерфейсу CG, інакше називану Windows CGI інтерфейсом.

Розбір даних HTML-форм

Windows CGI вимагає, щоб Web сервер декодував дан з HTML форм, якщо вони передан за допомогою POST методу запиту. В н не жадає в д сервера декодування параметр в, якщо вони передані як рядок запиту ("query string"), що єчастиною URRL. Існує два способи, якими дані зформ можуть бути передані серверу броузером:

URL-Encoded

Це найбільш використовуванийформат даних, переданих зформ. Уміст полів форми виділяються зформи і передаються відповідно до специфікації HTML 1.0, апотім збираються водин рядок, де відокремлюються друг від друга символом ампер санд а Тип змісту повідомлення встановлюєтьсяброузером у application/х-www-form-urlen coded

Multipart Form Data

Даний формат розробленийдля ефективного завантаження файл в на сервер з використаннямформ. Ум ст полів форми передається як багатосторінковеMIME повідомлення Кожне поле міститься водній сторінці. Тип змісту, установлюєтьсяброузером у multipart/form-data

"Грамотні" сервери повинні вміти обробляти обидва типи даних зформ.

Виклик CGI програм

Сервер використовує функцію CreateProcess() для виклику CGI програм. Сервер синхрон зується з CGI програмою, оск льки в н повинний визначити момент завершення CGI програми. Це досягається використанням функції Win32 WaitForSingleObjectC^iiw очікує одержання сигналу завершення CGI програми.

Командний рядок

Сервер повинний викликати CGI програму виконуючи функц ю CreateProcess() з командним рядком наступного формату:

WuiCGI-єхє cgi-data-file WuiCGI-єхє

Повний шлях до що виконується CGI програмі Сервер не залежить від "поточного каталогу" чи перемінної оточення PATH. Візьміть до відома, що "виконував" не обов'язково означає.EXE файл. Це може бути документ, що асоціюється з програмою, що реально виконується, описаної в WIN.rNI чи System Registry.

cgi-data-file

Повний шлях до CGI файлу даних. Метод виклику

Сервер використовує CreateProcess() для запуску процесу, що не має головного вікна. Викликаний процес не буде в дображатися яким або образом на мон тор сервера. Деякі сервера підтримують режим налагодження CGI програм іскриптів, що дозволяє серверу запускати CGI програму як звичайний процес зі створенням головного вікна і в дображенням нформац ї на мон тор сервера. Даний спос б дуже зручний на стад ї налагодження CGI програм.

CGI файл даних

Сервер передає дан CGI програмам через Windows "private profile" afqk, уформат "параметр-значення" (windows INI файл). CGI програма може прочитати даний файл одержить ус дан , передан їй зформи, атакождан , що автоматично генеруються броузером