Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИПОВС (2002) / DMoroz / Диплом.doc
Скачиваний:
42
Добавлен:
16.04.2013
Размер:
1.12 Mб
Скачать

2. Технологическая часть. Особенности разработки программ на скриптовом языкеPerlс использованием интерфейсаCgi

Дипломант Кришан С.А. ( __________ )

Консультант по технологической

части Ашарина И.В. ( __________ )

2002 г.

Введение

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

Также рассмотрены диаграммы UML, использовавшиеся при проектировании подсистемы.

2.1. Интерфейс CGI. Вопросы взаимодействия внешних прикладных программ с информационным серверомHTTP

2.1.1. Введение в технологию WWW

WWW (World Wide Web) представляет собой клиент-серверную технологию, основанную на прикладном протоколе HTTP (HyperText Transfer Protocol). HTTP– это протокол высокого уровня (а именно, уровня приложений), обеспечивающий необходимую скорость передачи данных, требующуюся для распределенных информационных систем гипермедиа. HTTP используется проектом World Wide Web с 1990 года.

В HTTP имеются два типа сообщений: запросы от клиента (браузера) к серверу и ответы сервера клиенту. Для передачи сообщений используется протокол TCP (TransferControlProtocol) и стандартный порт HTTP-сервера – 80. Запрос содержит URL (Uniform ResourceLocator)– идентификатор ресурса (документа), который хотел бы получить клиент и несколько вспомогательных заголовков.

Предполагается, что в ответ на запрос, сервер, проанализировав требуемый URL, предоставит клиенту искомую информацию, называемую контентом. В простейшем случае это документ HTML (HyperText Markup Language) или файл в другом формате, однако контент может генерироваться сервером «на лету», например может быть вызвана сторонняя программа и ее вывод принят в качестве контента. Чтобы браузер правильно определил тип информации, содержащейся в контенте, и, соответственно, применил адекватный способ представления этой информации пользователю, контент сопровождается заголовком Content Туре, в котором указывается MIME-тип данных.

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

Пользователь задает параметры запроса путем заполнения и отправки HTML-форм. Формы содержат поля ввода текстовой информации, радиокнопки, выпадающие списки и т.п.

Никакой HTTP-сервер не может предусмотреть всего разнообразия интерактивных WWWприложений. Вместо этого HTTP-сервер предлагает разработчику интерфейсCGI, используя который сторонняя программа может получить от HTTP-сервера все необходимые для обработки запроса данные, а в ответ сгенерировать контент, который будет возвращен сервером браузеру [5]. Таким образом, задача генерации контента возлагается на приложения, разрабатываемые для конкретной задачи.

2.1.2. CommonGatewayInterfaceкак средство расширения возможностейWorldWideWebтехнологии

Главное назначение Common Gateway Interface - обеспечение единообразного потока данных между сервером и прикладной программой, работающей на стороне сервера.

При использовании интерфейса CGIHTTP-сервер запускает приложение, называемоеCGI-программой или шлюзом. Это приложение должно обработать запрос. Для передачи данных об информационном запросе от сервера к шлюзу сервер использует командную строку и переменные окружения. Эти переменные окружения устанавливаются в тот момент, когда сервер выполняет программу шлюза. Существует два способа передачи данных шлюзу:GETиPOST. Выбор метода определяется при создании формы.

При отправке запроса методом GET данные, введенные в форму, присоединяются к URL после вопросительного знака. В этом случае URL может выглядеть например так: «http:/www.server.ru/cgi-bin/dir/stat2.pl?group=МП-55&fam=Krishan&age=20», т.е. информация передается в следующей форме: имя=значение&имя1=значение1&…, где имя – имя переменной (например, название выпадающего списка), и значение – реальное значение (выбранное значение в выпадающем списке).

При отправке методом POSTта же самая строка «group=МП-55&fam=Krishan&age=20» помещается после заголовков запроса, отделяясь от них пустой строкой. В этом случае к URL ничего не добавляется.

Отметим, что сами данные, их наличие или отсутствие, размещение в теле запроса или в URL или сразу в обоих местах HTTP-сервером никак не интерпретируются и не декодируются, а передаются приложению как есть. Все задачи по интерпретации и преобразованию данных возложены на CGI-приложение. Обработав запрос, приложение передает сгенерированный контент на свой стандартный вывод, где он перехватывается HTTP-сервером и пересылается клиенту. Единственный заголовок, который обязано выставить само CGI-приложение, - Content-Type.

На pис. 33 показаны взаимосвязи между Web-браузером, Web-сервером и CGI-программой.

Рис. 33. Заполнение формы с привлечением интерфейса CGI

Соседние файлы в папке DMoroz