Для створення сценаріїв CGI можна використовувати такі мови програмування як ANSI C, Java.
Частіше для реалізації сценаріїв використовують інтерпретатори. В цьому випадку сценарії пишуть мовами Shell, Perl, VB Script, JavaScript, TCL (Tool Command Language).
Взаємодія між Web-сторінкою та сценарієм CGI (приклади)
[слайд на стор. 9-16, Lect_12.pdf]
Деякі аспекти взаємодії web-сторінок та сценаріїв CGI
Передані та декодовані оператором foreach параметри форми в подальшому можуть бути використані сценарієм, наприклад, для одержання інформації із файлів на сервері з метою оформлення замовлення клієнта на певні товари, тощо.
Наведена у прикладі операція селекції зі змінної оточення QUERY_STRING переданих даних форми визначена не повністю. При передачі даних за методом GET усі пропуски в полях форми замінюються на символи + (або на шістнадцятко вий еквівалент %20). Заміна пропусків, символів CR, LF та ніших спеціальних символів називається URL-кодуванням. Таким чином, усі символи + доцільно замінити на пропуски за допомогою такої операції підстановки
|
|
$val=~s/+/ /g;
Змінні середовища CGI
Потужність механізму CGI надає можливість обробки параметрів, які передаються сценарію. На web-сервері при активізації CGI-сценарію формується середовище оточення, в якому сценарій може знайти в змінних середовища всю доступну інформацію про HTTP-з’єднання та запит. Це такі змінні:
o REQUEST_METHOD – дозволяє визначити метод HTPP-запиту;
o QUERY_STRING – містить рядок запиту при методі GET;
o CONTENT_LENGTH – довжина тіла запиту в байтах;
o CONTENT_TYPE – тип тіла запиту;
o GATEWAY_INTERFACE – версія протоколу CGI;
o REMOTE_ADDR – IP-адреса віддаленого комп’ютера, що здійснив запит;
o REMOTE_HOST – доменне ім’я віддаленого комп’ютера, що здійснив запит;
o SCRIPT_NAME – ім’я сценарію, використане в запиті;
o SCRIPT_FILENAME – ім’я файлу сценарію на сервері;
o SERVER_NAME – ім’я сервера;
o SERVER_PORT – TCP-порт сервера (використовується для з’єднання);
o SERVER_PROTOCOL – версія протоколу сервера;
o AUTH_TYPE, REMOTE_USER – ці змінні визначені у випадку, якщо ресурс запиту вимагає аутентифікації користувача.