Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

Информатика, программирование->Лекция
Для хранения и обработки символов используются переменные типа Ansichar и wideChar. Тип Ansichar представляет собой набор ANSI-символов, в котором каж...полностью>>
Информатика, программирование->Лекция
Консоль — это монитор и клавиатура, рассматриваемые как единое устройство. Консольное приложение — программа, предназначенная для работы в операционно...полностью>>
Информатика, программирование->Лабораторная работа
де Т0 – власний момент у ненавантаженому підшипнику; Fr та Fa – радіальна та осьова сили, Н , відповідно, які діють на підшипник; Dm – діаметр окружно...полностью>>
Информатика, программирование->Лекция
Массив — это структура данных, доступ к элементам которой осуществляется по номеру (или индексу). Все элементы в массиве имеют одинаковый тип. Индекс ...полностью>>

Главная > Реферат >Информатика, программирование

Сохрани ссылку в одной из сетей:

Обзор CGI

CGI (Common Gateway Interface, общий шлюзовой интерфейс) относится к числу средств, без которых нельзя обойтись как при создании комплексных Web-узлов, так и при управлении ими. CGI обеспечивает возможность писать сценарии, которые позволяют разрабатывать управляемые пользователем интерактивные приложения.

CGI — компонент программного обеспечения Web-сервера, который может взаимодействовать с другими программами, работающими на этом сервере. С помощью CGI Web-сервер может вызвать внешнюю программу и передать в нее пользовательские данные (например, информацию о том, с какой хост-машины пользователь установил соединение, или данные, введенные пользователем в HTML-форму). Эта программа затем обрабатывает полученные данные, и сервер передает результаты ее работы обратно в Web-браузер. Схема взаимодействия браузера с CGI-приложением приведена ниже.

CGI обеспечивает средства динамического создания Web-страниц на основе информации, вводимой пользователями. За счет этого расширяется диапазон возможностей World Wide Web. Пользователь, не будучи ограниченным рамками заранее написанных документов, может использовать CGI-сценарии для создания широкого круга приложений — от обзоров до средств поиска, от программного обеспечения сервисных шлюзов Internet до игр и викторин. CGI обеспечивает возможность организовать подсчет количества пользователей, обратившихся к документу; более того, каждому из них может быть предложено расписаться в электронной книге гостей. Кроме того, CGI позволяет предоставлять пользователям любого рода информацию, регистрировать замечания клиентов и давать на них ответы.

Пример взаимодействия с CGI

В качестве примера CGI-приложения рассмотрим форму, которую необходимо заполнить. HTML-код этой формы может выглядеть так:

Гостевая книга

Заполните мою гостевую книгу!

Имя:

Фамилия:

Форма составляется с помощью специальных тегов форм:

  • Тег

    определяет метод (method), используемый для формы (GET или POST), и действие (action), которое необходимо выполнить при передаче формы, т.е. URL CGI-программы, которой будут передаваться параметры.

  • Тег можно применять по-разному. Обратимся к нашему примеру и рассмотрим первые две строки документа, в которых используется этот тег. Здесь он служит для создания поля ввода текста и задания имени переменной, которую нужно связать с содержимым данного поля при передаче формы. Переменной, соответствующей первому полю, присваивается имя fname (имя), а второму — lname (фамилия).

  • В следующих двух строках тег используется для создания кнопки передачи (SUBMIT) и кнопки сброса (RESET).

  • Тег

  • обозначает конец формы.

Когда пользователь нажимает кнопку передачи, данные, введенные в текстовые поля , передаются в CGI-программу, заданную атрибутом action тега

.

Пересылка данных формы

В CGI-программу параметры пересылаются либо в самом URL, либо в теле текста запроса. Метод, применяемый для передачи параметров, определяется атрибутом method тега . Метод GET предполагает пересылку данных в самом URL. При использовании этого метода браузер может инициировать HTTP-транзакцию следующим образом:

GET /cgi-bin/guestbook.pl?fname=Thyler&lname=Birden HTTP/1.0

При применении метода POST для передачи параметров используется тело HTTP-запроса. Вышеупомянутая транзакция по методу POST приобретет следующий вид:

POST /cgi-bin/guestbook.pl HTTP/1.0

[Здесь идут другие заголовки]

fname=Thyler&lname=Birden

При использовании любого способа передачи параметров для разделения пар переменная=значение используется амперсанд (&).

После выделения параметров из тела запроса или URL сервер передает пары переменная=значение в CGI-программу. Это делается либо посредством переменных среды UNIX, либо через стандартный ввод (STDIN). Если программа CGI вызывается методом GET, то параметры встроены в URL запроса, и сервер пересылает эти параметры в программу путем присваивания их переменной среды OUERY_STRING. Программа CGI затем извлекает параметры из этой переменной так же, как и при обработке любой другой переменной среды. Если программа CGI вызывается методом POST, то параметры встроены в тело запроса, и сервер передает текст тела в программу через стандартный ввод (STDIN).

Другие переменные среды, определяемые сервером для программ CGI, перечислены далее. В этих переменных хранится такая информация, как формат и объем входных данных, имя удаленной хост-машины, данные о пользователе и различная информация о клиентах. Кроме того, они содержат имя сервера, наименование протокола связи и имя программы, управляющей сервером.

Программе CGI нужно извлечь соответствующую информацию и затем обработать ее. Диапазон операций, которые программа CGI выполняет с извлеченной информацией, практически не ограничен. Программа может выдать анаграмму имени пользователя, сообщить, сколько раз в его имени встречается буква t, а то и просто включить это имя в список, который программист регулярно посылает на электронную биржу. Границы истинных возможностей программы известны только самому программисту.

Кодирование URL

Перед началом передачи введенных в форму данных в программу CGI каждому заданному пользователем значению ставится в соответствие имя элемента формы (которое задано атрибутом name). Таким образом формируются пары ключ-значение. Например, если пользователь ввел в ответ на вопрос о возрасте число 30, то пара ключ-значение будет иметь вид age=30. Пары ключ-значение отделяются друг от друга в пересылаемых данных символом &.

Поскольку при использовании метода GET данные формы передаются как часть URL, они не могут включать пробелы и другие специальные символы, применение которых в URL не допускается, а также символы, которые в URL имеют другое назначение, например символ косая черта (/). (В целях совместимости это ограничение накладывается и при использовании метода POST.) Чтобы обеспечить выполнение указанных условий, Web-браузер производит над предоставленной пользователем информацией специальные операции кодирования.

Кодирование представляет собой замену пробелов и других специальных символов в строках запросов их шестнадцатеричньши эквивалентами. (По этой причине кодирование URL иногда называют шестнадцатеричным кодированием.) Предположим, пользователь заполняет и передает форму, содержащую дату его рождения в формате дд/мм/гггг (например, 20/05/2004). Символы "косая черта" в дате рождения относятся к числу специальных символов, которые не должны появляться в запросе клиента, адресованном программе CGI. После выполнения кодировки запрос будет выглядеть так, как показано в следующем примере:

POST /cgi-bin/birthday.pl HTTP/1.0

Content-length: 23

birthday=20%2F05%2F2004

Последовательность %2F представляет собой шестнадцатеричный эквивалент символа "/". Следует, также, отметить, что символ пробела кодируется особым образом: он может заменяться не только шестнадцатеричным кодом (%20), но и знаком плюс (+). В сценариях CGI необходимо предусматривать способ "декодирования" данных, которые были введены в форму данных и после этого закодированы клиентом

Дополнительная информация о пути

Помимо строк запросов, пользователь может передавать в URL дополнительные данные, называемые дополнительной информацией о пути (extra path information). Сервер проверяет, где заканчивается имя программы CGI, все остальные данные считаются "дополнительными" и помещаются в переменную среды PATH_INFO. Следующая строка, которая служит для вызова сценария, включает дополнительную информацию о пути:

http://some.machine/cgi-bin/display.pl/cgi/cgi_doc.txt

Информация после текста display.pl является дополнительным путем. Можно воспользоваться и переменной PATH_TRANSLATED: ее значение включает, помимо значения переменной PATH_INFO, корневой каталог документов (DOCUMENT_ROOT).

Создание виртуальных документов

После завершения обработки полученной информации программа CGI должна создать новый документ, который будет предоставляться браузеру, или указать ссылку на существующий документ. В ОС UNIX программы посылают свою выходную информацию на стандартный вывод (STDOUT) как поток данных, состоящий из двух частей. Первая часть представляет собой полный или частичный HTTP-заголовок, в котором содержится (как минимум) описание формата возвращаемых данных (например HTML, ASCII-текст, GIF и т.д.). Пустая строка обозначает конец заголовка. Вторая часть — это тело выходных данных. В нем содержатся данные в формате, который задан в заголовке. Например:

Content-type: text/html

Спасибо!

Спасибо, что заполнили мою гостевую книгу!

В этом случае единственная строка заголовка выходных данных — Content-Type. Она содержит MIME-тип выходной информации, здесь — HTML (text/html). Эта строка существенно важна для каждой CGI-программы, поскольку она содержит информацию для браузера о том, как следует обрабатывать следующие за заголовком данные. Пустая строка отделяет заголовок от основного текста (который в данном случае имеет формат HTML, как это указано в заголовке.

Для Web-сервера не имеет значения, на каком языке написана программа CGI. В UNIX-системах наиболее популярным языком для написания CGI-программ являются PHP и Perl. Среди других языков, используемых в ОС UNIX, — С, C++, Tcl, Python. Программисты, работающие на компьютерах Macintosh, чаще пользуются языками Applescript и C/C++, а среди разработчиков, применяющих средства Microsoft Windows, популярны ASP, Visual Basic, Perl и C/C++. Для CGI-программирования можно использовать любой язык программирования, в котором предусмотрены средства получения данных с сервера и отправки их обратно.

Сервер возвращает результаты выполнения CGI-программы браузеру. При этом основной текст сервером никоим образом не модифицируется и не интерпретируется. Обычно сервер снабжает возвращаемые данные дополнительными заголовками, которые содержат такую информацию, как дата, имя и версия сервера и др.

Программы CGI могут формировать полный HTTP-заголовок. В этом случае сервер не дополняет возвращаемые данные какой-либо информацией. Ответ пересылается в том виде, в каком его выдала программа CGI.

Ниже приведен пример выходной информации программы, генерирующей виртуальный HTML-документ. Эта выходная информация включает полный HTTP-заголовок:

НТТР/1.0 200 OK

Date: Thursday, 20-May-04 11:12:13 GMT

Server: Apache/1.3.12

Content-type: text/html

Content-length: 2041

Спасибо!

Спасибо, что заполнили мою гостевую книгу!

Заголовок содержит имя протокола передачи, дату и время ответа, имя и версию сервера. (200 OK — это код состояния, генерируемый протоколом HTTP для сообщения о результатах выполнения запроса, который в данном случае завершился успешно). Кроме того, заголовок содержит тип и значение количества символов (последнее эквивалентно количеству байтов), содержащихся в выходной информации данных.

В результате после щелчка на кнопке “Отправить” пользователь увидит на экране ответ.

Пересылка бинарных данных



Загрузить файл

Похожие страницы:

  1. Программирование в сетях

    Конспект >> Информатика, программирование
    ... использоваться два подхода - CGI (Common Gateway Interface) и API (Application Programming Interface). Оба подхода основываются на ... -систем. 1.5. Технология .NET 11.1.5.1. Краткий обзор технологии .NET Компонентная идея заразила ...
  2. Защита информации в гетерогенных сетях

    Реферат >> Информатика
    ... обслуживающие общий шлюзовый интерфейс (Common Gateway Interface - CGI). CGI-процедуры располагаются на серверах ... открытым сетям, предлагаем краткий обзор продуктов и решений VPN. ... информационной безопасности, делает краткий обзор продуктов и ре­шений VPN, ...
  3. Гипертекстовые технологии

    Контрольная работа >> Информатика
    ... выполненной академической работы с обзором литературы по данному вопросу ... четвертый: универсальный интерфейс шлюзов CGI (Common Gateway Interface). Java не включается ... группы NCSA - спецификация CGI (Common Gateway Interface). CGI была специально разработана ...
  4. Сети ЭВМ и телекоммуникации

    Реферат >> Информатика
    ... базами данных. Разумеется, обзор нельзя назвать полным, так ... — Интернет-сервер корпорации Microsoft. CGICommon Gateway Interface — интерфейс общего шлюза. SSL ... система 6 Internet Information Server 7 Common Gateway Interface 8 Secure Sockets Layer 9 ...
  5. Мировые информационные ресурсы (2)

    Лекция >> Международные отношения
    ... собой статьи, рефераты, обзоры и прочие публикации научного характера ... могут выступать ресурсы, содержащие обзоры, подборки рефератов, каталоги и ... клиента. •универсальный интерфейс шлюзов CGI - Common Gateway Interface – стандартный интерфейс обмена данными ...

Хочу больше похожих работ...

Generated in 0.0015008449554443