Реферат: Использование CGI при создании интерактивных интерфейсов
4.1 WWW (World Wide Web) и средства интерактивного взаимодействия
4.2Спецификация CGI
4.2.1Переменные окружения
4.2.2Стандартный вывод
4.2.3Стандартный входной поток
4.2.4Аргументы командной строки
4.3Последовательность действий для обработки входных данных cgi-модуля для разных методов запроса GET и POST
4.3.1Для метода GET
4.3.2Для метода POST
4.4Примеры cgi-модулей
4.1 WWW (World Wide Web) и средства интерактивного взаимодействия
Цель данной главы познакомить пользователя с той частью WWW-технологий которая связана с созданием интерактивных интерфейсов и предполагается что пользователь знаком с основами WWW, HTML и С/С++.
В общем случае, интерактивный интерфейс пользователя представляет собой систему, обеспечивающую взаимодействие пользователя и программы. Для WWW, интерактивный интерфейс можно определить как последовательность HTML-документов, реализующих интерфейс пользователя. Можно также условно классифицировать принципы построения интерфейса по типу формирования HTML-документа:
- статический
- динамический
В первом случае источником интерфейса является HTML-документ, созданный в каком-либо текстовом или HTML-ориентированном редакторе. Следовательно, данный документ остается неизменным в течение использования. Во втором случае источником интерфейса является HTML-документ сгенерированный cgi-модулем. Следовательно, появляется некоторая гибкость в видоизменении интерфейса во время использования.
Таким образом, можно ввести понятие интерактивного интерфейса для WWW.
Интерактивный интерфейс для WWW представляет собой последовательность статических или динамически формируемых HTML-документов, реализующих интерфейс пользователя.
Практически любая задача, решающая проблему получения данных от клиента, связана с построением интерфейса. Наиболее интересным является построение интерфейсов к различным базам данных, доступ к SQL-серверу, получение информации от периферийных устройств, создание клиентских рабочих мест. Все это возможно посредством CGI(Common Gateway Interface).
Common Gateway Interface (CGI) является стандартом интерфейса внешней прикладной программы с WWW сервером.
Задача построения вышеназванных интерфейсов делится на две части:
- Клиентская часть
- Серверная часть
Рисунок 4-1. Две части интерактивного интерфейса.
Клиентская часть
Для создания клиентской части необходимо создать HTML-документ, в котором реализован интерфейс с пользователем. В языке HTML это возможно посредством форм.
Конструкции языка HTML, используемые при реализации форм, даны в приложении 1 к гл. 4.
Серверная часть
Серверная часть состоит из исполняемого модуля, решающего основные задачи обработки данных поступающих от клиентской части, формирования ответа в формате HTML, и т.д. Такой модуль называется cgi-модулем .
Методы HTTP запроса
Для реализации взаимодействия "клиент-сервер" важно, какой метод HTTP запроса использует клиентская часть при обращении к WWW серверу. В общем случае, запрос - это сообщение, посылаемое клиентом серверу. Первая строка HTTP запроса(см. гл.3) включает в себя метод, который должен быть применен к запрашиваемому ресурсу, идентификатор ресурса(URI-Uniform Resource Identifier), и используемую версию HTTP-протокола. В рассматриваемом нами случае, клиентская часть применяет методы запроса POST и GET. Метод POST используется для запроса серверу, чтобы тот принял информацию, включенную в запрос, как относящуюся к ресурсу, указанному идентификатором ресурса. Метод GET используется для получения любой информации, идентифицированной идентификатором ресурса в HTTP запросе.
Для WWW-сервера стандарта NCSA прикладные программы или CGI-модули, обрабатывающие поток данных от клиента или (и) формирующие обратный поток данных могут быть написаны на таких языках программирования как:
- C/C++;
- Любой UNIX shell;
- Fortran;
- Perl;
- Visual Basic;
- TCL;
- AppleScript;
4.2 Спецификация CGI
CGI определяет 4 информационных потока.
- Переменные окружения
- Стандартный входной поток
- Стандартный выходной поток
- Командная строка
Рисунок 4-2. CGI-интерфейс.
4.2.1 Переменные окружения
Переменные окружения условно делятся на два типа:
- общие для всех типов запросов (устанавливаются для всех типов)
- зависящие от метода запроса
К переменным первого типа относятся следующие переменные:
SERVER_SOFTWARE содержит информацию о WWW сервере (название/версия)
SERVER_NAME содержит информацию об имени машины, на которой запущен WWW сервер, символическое имя или IP адрес соответствующие URL.
GATEWAY_INERFACE содержит информацию о версии CGI(CGI/версия)
Следующие переменные являются специфичными для разных типов запросов и значения этим переменным присваиваются перед вызовом cgi-модуля.
CONTENT_LENGTH значение этой переменной соответствует длине стандартного входного потока в символах.
CONTENT_TYPE эта переменная специфицирована для запросов содержащих дополнительную информацию, таких как HTTP POST и PUT, и содержит тип данных этой информации.
SERVER_PROTOCOL эта переменная содержит информацию об имени и версии информационного протокола (протокол/версия).
SERVER_PORT значение переменной содержит номер порта, на который был послан запрос.
REQUEST_METHOD метод запроса, который был использован "POST","GET","HEAD" и т.д.
--> ЧИТАТЬ ПОЛНОСТЬЮ <--