Common Gateway Interface - средство расширения возможностей World Wide Web технологии
Главное назначение Common Gateway Interface - обеспечение единообразного потока данных между сервером и прикладной программой, которая запускается из-под сервера
CGI-скрипт - программа написанная в соответствии со спецификацией Common Gateway Interface. CGI-скрипты могут быть написаны на любом языке программирования (C, C++, PASCAL, FORTRAN и т. п.) или командном языке (shell, cshell, командный язык MS-DOS, Perl и т. п.). Скрипт может быть написан даже на языке редактора EMAC в системах Unix
Шлюз - это CGI-скрипт, который используется для обмена данными с другими информационными ресурсами Internet или приложениями-демонами. Обычная CGI- программа запускается сервером HTTP для выполнения некоторой работы, возвращает результаты серверу и завершает свое выполнение
Механизмы обмена данными
- переменные окружения
- формат командной строки
- формат стандартного ввода
- формат стандартного вывода
Список переменных окружения
К общим переменным окружения относятся:
|
|
- SERVER_SOFTWARE - определяет имя и версию сервера
- SERVER_NAME - определяет доменное имя сервера
- GATEWAY_INTERFACE - определяет версию интерфейса
К запрос-ориентированным относятся:
- SERVER_PROTOCOL - протокол сервера
- SERVER_PORT - определяет порт TCP, по которому осуществляется взаимодействие (80 порт)
- REQUEST_METHOD - определяет метод доступа к информационному ресурсу
- PATH_INFO - передает программе путь (адрес скрипта) в виде, указанном в HTML-документе
- PATH_TRANSLATED - то же, что и PATH_INFO, но только после подстановки сервером определенных в его конфигурации вставок
- SCRIPT_NAME - определяет адрес скрипта так, как он указан клиентом
- QUERY_STRING - определяет содержание запроса к скрипту
Идентификация пользователя и его машины:
- REMOTE_HOST - доменный адрес машины, с которой осуществляется запрос
- REMOTE_ADDR - IP-адрес запрашивающей машины
- AUTH_TYPE - тип идентификации пользователя
- REMOTE_USER - идентификация пользователя
- REMOTE_IDENT - устанавливается сервером; предназначена для первоначального использования скрипта
- CONTENT_TYPE - определяет MIME-тип данных, передаваемых скрипту
- CONTENT_LENGTH - определяет размер данных в байтах, которые передаются скрипту
Стандартный ввод CGI-скрипта
- Методы GET или Post
- CONTENT-LENGHT
- CONTENT-TYPE
- QUERY-STRING
Стандартный вывод CGI-скрипта
- Заголовок
- CONTENT-TYPE
- Location
- Status
- Тело ответа (обычно текст)
Применение CGI-скриптов
- Простейшие SHELL-скрипты
- Вызов внешней программы через SHELL
- Вызов модуля "С"
- Доступ к базам данных
- Imagemap