
- •Раздел 1
- •Тема 1.1 Основные принципы технологии «клиент сервер»
- •Тема 1.2 Серверы приложений. Web-серверы.
- •1. Типы серверов
- •Типы серверов
- •Лекция 1.3 Основы Web-программирования.
- •1. Основы функционирования Интернет.
- •Основы функционирования интернета
- •Язык разметки html
- •Каскадные таблицы стилей (css)
- •Язык сценариев JavaScript
- •Объектная модель dhtml
- •Объектная модель dom
- •Основы языка xml и объектная модель xml
- •Лекция 1.4 Протоколы прикладного уровня.
- •Механизм взаимодействия клиента и ервера
- •Раздел 2. Основы Web-программирования.
- •Тема 2.1 Развитие языков разметки гипертекста
- •Структура html-документа
- •Лекция 2.2 Описание html. Теги языка, их свойства.
- •Тема 2.3 Фреймы. Формы.
- •Свойства фреймов
- •Синтаксис фреймов
- •Атрибуты и их значения
- •Планирование фрэймов и взаимодействия между фрэймами
- •Синтаксис
- •Тэги Формы
- •Меню выбора в формах
- •Отправление файлов при помощи форм
- •Тема 2.4 Каскадные таблицы стилей.
- •Структура и правила
- •Id селекторы (id Selectors):
- •Внутренние Таблицы Стилей
- •Глобальные Таблицы Стилей
- •Связанные Таблицы Стилей
- •Свойства Font
- •Свойства Text
- •Свойства Color и Background
- •Свойства Box
- •Классификация
- •Лекция 2.5 Характеристика и вохмодности xml.
- •Отображение документов xml
- •Правила создания xml- документа
- •Конструкции языка
- •Правила xsl
- •Лекция 2.6 Язык описания схемы данных xml (dtd).
- •Лекция 2.7 Объектная модель документа dom.
- •Лекция 2.8 Характеристика ис. Спецификация cgi.
- •Лекция 2.9 Расширение isapi. Серверы asp.
- •Лекция 2.10 Характеристика программного средства (рнр).
- •Лекция 2.11 Основы языка ис. Синтаксис.
- •Лекция 2.12 Элементы и выражения языка.
- •Лекция 2.13 функции ис.
- •Лекция 2.14 Характеристика программного средства (JavaScript).
- •Лекция 2.15 Синтаксис языка JavaScript. Операторы.
- •Выражения
- •Побитовые Операторы сдвига
- •Логические операторы
- •Операторы Строки
- •Лекция 2.16 Функции JavaScript.
- •Лекция 2.17 Объекты JavaScript. Методы и события.
- •Общие сведения
Лекция 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 размещается форма ввода, состоящая из необходимых органов управления (полей редактирования текстовой информации, переключателей, списков и др., каждому органу управления присваивается произвольное имя; в форме должна присутствовать кнопка, нажатие которой инициирует передачу информации из полей формы на сервер).