
- •Лабораторная работа № 8 Технология разработки web-приложений
- •Теоретические сведения
- •Краткие сведения о языке html
- •2.1. Поле ввода
- •2.2. Кнопки
- •Способы запуска cgi-приложений
- •4. Особенности использования web-сервера WebApp
- •5. Разработка cgi-приложений
- •5.1. Простейшее cgi-приложение
- •5.2. Использование языка JavaScript в html-документах
- •5.3. Разработка cgi-приложения, анализирующего данные, введенные пользователем с помощью элементов управления
- •5.5. Создание cgi-приложения для работы с базой данных
- •Лабораторное задание и порядок его выполнения
- •Требования к отчету
4. Особенности использования web-сервера WebApp
На WWW-сервере в корневой папке для каждого студента создана отдельная личная папка, в которую он помещает разрабатываемые web-приложения и HTML-документы. Имя личной папки совпадает с регистрационным именем студента на ВЦ МИЭТ и указывается в URL для ссылки на размещенные в ней информационные ресурсы при обращении к web-серверу.
Для записи этих ресурсов в личную папку на WWW-сервере студент должен подключиться к ней с помощью команды
connect_webapp <регистрационное имя> (например, connect_webapp u253344),
которая вводится в окне Запуск программы, активизируемом из стартового меню Windows командой Пуск | Выполнить. В результате в локальной сети становится доступным виртуальное устройство W, представляющее личную папку студента на WWW-сервере. Информация, записываемая на устройство W, оказывается в личной папке студента.
После окончания лабораторной работы следует скопировать все файлы с виртуального устройства W на личный диск Н для их надежной сохранности.
Для проведения лабораторной работы на WWW-сервере установлена учебная база данных с пседонимом Zgrad, в которой содержаться сведения о жителях Зеленограда. Для доступа к базе данных используется ядро процессора баз данных BDE, также установленное на WWW-сервере.
5. Разработка cgi-приложений
Чтобы создать CGI-приложение, необходимо решить две основные задачи: разработать web-интерфейс и разработать программу (web-приложение), которая принимает запрос пользователя и осуществляет его выполнение.
Для разработки web-интерфейса достаточно знать основы языка HTML, изложенные в разделе 2.
Различают два типа CGI-приложений: стандартное или консольное CGI-приложение, в котjром передача данных производится через переменные окружения выполняющейся программы, и приложение WinCGI (версия CGI для Windows), в котором обмен данными осуществляется через INI-файл. В лабораторной работе рассматривается первый тип CGI-приложений.
Для разработки консольного CGI-приложения не требуется никаких специальных средств. Для вывода результатов выполнения этого приложения используются обычные процедуры вывода информации на консоль. В языке C это стандартные функции printf, cprintf, puts и другие. Однако выводимая таким образом информация должна соответствовать протоколу HTTP, используемому на уровне приложений и обеспечивающему обмен только текстовой информацией.
Для передачи двоичных файлов по протоколу HTTP используется спецификация MIME (Multipurpose Internet Mail Extention). Согласно спецификации MIME, формат данных описывается следующим образом:
<Тип>/<подтип>
<Тип> определяет, какого рода информация содержится в двоичном файле (текст, приложение, изображение, видеозапись и т.п.), а <подтип> - формат файла.
Сеанс взаимодействия с web-сервером по протоколу HTTP в общем виде состоит из таких шагов:
установление соединения;
передача запроса клиента и прием его сервером;
подготовка ответа сервера и передача его клиенту;
разрыв соединения.
Запрос клиента представляет собой требование на передачу HTML-документа или какого-либо другого ресурса. Ответ сервера содержит запрашиваемый ресурс. С точки зрения web-приложения структура ответа более важна, чем структура запроса, поскольку выполняющиеся на сервере программы должны сами формировать ответ сервера клиенту.
Основные компоненты ответа сервера аналогичны компонентам запроса клиента и в себя включают следующие элементы:
строку состояния;
поля заголовка;
пустую строку;
тело ответа.
Строка состояния имеет следующий формат:
версия протокола код ответа пояснения
Здесь:
1) версия протокола задает в формате HTTP/версия. Например, при использовании версии HTTP 1.0 этот элемент выглядит так: HTTP/1.0;
2) код ответа представляет собой трехзначное десятичное число, обозначающее результат обработки запроса клиента сервером;
пояснения расшифровывают код ответа в символьном виде.
Поля заголовка в ответе сервера имеют такой формат:
имя поля : значение
Для нас наиболее важным является поле Content-Type - MIME-тип данных, содержащихся в теле ответа сервера. В этом поле указывается способ обработки ресурса, полученного клиентом. Если ресурсом является HTML-документ, то поле задает значение формата данных в таком виде:
Content-Type: text/html
Поля заголовка отделяется от тела ответа пустой строкой.
В теле ответа содержится передаваемый клиенту ресурс, который может быть HTML-документ или любой другой ресурс.
В формировании описанных компонентов ответа сервера участвует как CGI-приложение, так и web-сервер: строка состояния генерируется web-сервером, а поля заголовка, пустая строка и тело ответа формируются CGI-приложением.