Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛК.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
953.86 Кб
Скачать

Лекция 2.8 Характеристика ис. Спецификация cgi.

1. CGI технология.

2. Схема работы CGI.

3. Кодирование и пересылку данных формы в запросе.

4. CGI-сценарий.

CGI ТЕХНЛОГИЯ

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

Стандартный язык разметки HTML позволяет легко и быстро создавать веб-страницы, передаваемые по сети Интернет. Это удобный инструмент, но, загружаемые в окно браузера страницы - статичны. Пользователь не может менять их содержимое, не может взаимодействовать с ними. Для придания динамичности HTML страницам был предложен и реализован ряд технологий, оживляющих и создающих реагирующие на действия пользователя HTML-документы. CGI-сценарий - одна из первых таких технологий. Это программа, инициализируемая на сервере при передаче на него информации из полей форм HTML, создаваемых тэгом <FORM>…</FORM>.

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

CGI включает общую среду (набор переменных) и протоколы для взаимодействия с этими программами.

СХЕМА РАБОТЫ CGI

Получение веб-сервером информации от клиента-браузера. Для передачи данных веб-серверу в HTML используется форма, задаваемая при помощи тэгов FORM. Она состоит из набора полей ввода, отображаемых браузером в виде графических элементов управления (селекторные кнопки, опции, строки ввода/вывода).

Анализ и обработка полученной информации. Данные, извлеченные из HTML-формы, передаются на обработку CGI-программе. Они не всегда могут быть обработаны ею самостоятельно. Так, если в данных содержится запрос к базе данных, то CGI-программа переадресовывает запрос СУБД, выполняющейся на том же ПК.

Создание нового HTML документа и пересылка его браузеру. После обработки полученной информации, CGI-программа создает динамический (виртуальный) html-документ и возвращает результат в Apache, а он - браузеру клиента.

КОДИРОВАНИЕ И ПЕРЕСЫЛКА ДАННЫХ В ЗАПРОСЕ

Взаимодействие между клиентом-браузером и веб-сервером осуществляется по правилам протокола http и состоит из запросов клиента и ответов сервера. Запрос клиента разбивается на три части:

1 строка - команда HTTP (метод GET или POST)

- URL-адрес запрашиваемого файла cgi-сценария

- номер версии протокола HTTP

2 строка - заголовок запроса

3 строка - тело запроса (собственно данные, посылаемые серверу)

Метод сообщает серверу о целях запроса. В протоколе http определены несколько методов, но для передачи формы в cgi-программу используются 2 метода GET и POST.

Метод GET. Данные формы пересылаются в составе URL-запроса, к которому присоединяются после символа "?".

Метод POST. Данные формы пересылаются в теле запроса. Схема кодирования данных из формы одинакова для обоих методов и заключается в следующем:

Для каждого элемента формы, имеющего имя, заданное параметром NAME, формируется пара NAME = value, где value - значение элемента, введенное пользователем или назначенное по умолчанию. При отсутствии значения, соответствующая пара имеет вид: NAME =. Для радиокнопок и переключателей используются значения только выбранных элементов.

Все пары объединяются в строку через разделитель &.

CGI-СЦЕНАРИЙ.

Назначение - создать новый html документ, используя данные, содержащиеся в запросе и передать его обратно клиенту. Если такой документ уже существует, то передается ссылка на него.

Свойства языка CGI-программирования:

  • средства обработки текста, необходимые для декодирования входной информации, поступающей в виде строки и состоящей из отдельных полей, разделенных символами ограничителя.

  • средства доступа к переменным среды. С помощью переменных среды данные передаются на вход cgi-программы.

  • возможность взаимодействия с другими программами. Необходима для обращения к СУБД, программам обработки графики и другим специальным программам.

Shell - интерпретатор команд ОС. В то же время имеет встроенные средства, характерные для языков программирования, а именно строковые переменные и управляющие конструкции.

Языки с интерпретаторами:

  • shell

  • perl (Practical Extraction and Report Language)

  • python

  • tcl

Содержимое ответа - html-документ, является результатом выполнения cgi-программы, которая передает результат своей работы (html-документ) серверу, который возвращает его клиенту. При этом сервер не анализирует и не изменяет полученные данные, а только дополняет некоторыми общими заголовками.

Обработка данных cgi-программы.

Данные формы поступают в cgi-программу в закодированном виде, поэтому первый шаг - это декодирование данных, состоящее из следующей последовательности действий:

  • замена каждой группы %hh (16-й код ASCII) на соответствующий ASCII-символ

  • замена символа "+" пробелом

  • выделение отдельных пар "имя=значение", разделенных ограничителем &

  • выделение из каждой пары "имя=значение" имени и значения соответствующего поля формы

Обработка выделенных и декодированных данных. Программа должна проверить заполнение обязательных полей формы, правильность подтверждения пароля.

Передача информации от удаленного пользователя происходит следующим образом

В создаваемом для ввода информации документе HTML размещается форма ввода, состоящая из необходимых органов управления (полей редактирования текстовой информации, переключателей, списков и др., каждому органу управления присваивается произвольное имя; в форме должна присутствовать кнопка, нажатие которой инициирует передачу информации из полей формы на сервер).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]