Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Технология Common Gateway Interface — создаем серверные программы




  • Что такое CGI?
  • С чего начинать?
  • Рабочее место
  • Настройка Apache Server для работы
  • Настройка Delphi
  • Страница "Hello, World!"
  • Получение данных от клиента
  • Работа с переменными окружения
  • Метод POST
  • Методы приведения данных к стандартному виду
  • Метод GET
  • Использование протокола HTTP
  • Типы данных
  • HTTP-заголовок
  • Режим прямого вывода
  • Отправка на сервер данных различного типа. Передача файлов
  • "Вытягивание" информации или Pull-метод.
  • Получение информации о клиенте
  • Использование Cookie
  • Создание CGl-программ с использованием библиотек Delphi

 

Итак, изучив многие аспекты создания Web-узлов, связанные главным образом с работой на стороне клиента, можно начинать осваивать серверные технологии.

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

 

Что такое CGI?

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

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

 

С чего начинать?

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

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

 

Рабочее место

Программное обеспечение Web-программиста, собирающегося создавать серверные модули в среде Delphi, должно включать прежде всего саму среду Delphi, причем не имеет значения, какой версии (желательно, 2.0 или новее, поскольку в первой версии язык Object Pascal имеет иной синтаксис). На данном этапе мы не будем использовать никаких визуальных средств, поэтому программы можно компилировать даже в режиме командной строки, но удобнее, конечно, делать программы в стандартной оболочке.

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

 

Настройка Apache Server для работы

Если у вас еще нет Web-сервера Apache, то его последнюю версию всегда можно загрузить с сайта www.apache.org.При инсталляции последних вариантов дистрибутивов пользователю придется обращаться к конфигурационным файлам только при необходимости изменения специфичных настроек, а название Web-сервера и домена, которые должен обслуживать Apache устанавливаются уже в процессе инсталляции. Все примеры этой и следующей главы рассчитаны на присвоение имени localhost ресурсу, обслуживаемому Apache, информационное наполнение которого мы будем создавать.

Все остальные настройки Web-сервера рекомендуем оставить без изменения, в том числе названия каталогов.

 

Настройка Delphi

Для удобства отладки серверных модулей, рекомендуем еще в начале работы по его созданию, установить путь для выходных (ехе) файлов, каталог cgi-bin сервера. Для этого запустите Delphi и зайдите на вкладку Project | Options | Directories/Conditionalsи в поле Output Directoryвпишите путь C:\Program Files\Apache Group\Apache\cgi-bin. Это позволит в дальнейшем моментально анализировать результаты работы.

Для создания Web-страниц потребуется любой простейший текстовый редактор.

 

Страница "Hello, World!"

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

В своей работе создаваемый модуль будет использовать лишь консоль для обмена данными с Web-сервером. Это значит, что никаких элементов графического интерфейса использовать не нужно, а поток данных посылается на сервер стандартными процедурами write и writein.

Итак, предположим, что наш проект будет называться hello. После запуска Delphi создадим консольное приложение, используя пункты меню File | New | Console Application. Давайте сохраним его под именем hello.dpr в каталоге cgi-bin сервера или любом другом, но при использовании другого каталога желательно проделать описанную выше операцию переопределения выходного каталога.

Наше простейшее приложение не будет обрабатывать данные клиента и будет содержать код, приведенный в листинге 9.1.

Листинг 9.1. Исходный код серверного модуля Hello

program hello;

{$APPTYPE CONSOLE}

begin

writeln('Content-Type: text/html');

writeln;

writeln('<HTML>');

writeln('<ТIТLЕ>Это динамически сгенерированная страница</ТIТLЕ>');

writeln('<Hl>Hello World!</Н1>');

writeln('</HTML>');

end.

Скомпилируем приложение и сгенерируем ЕХЕ-файл, используя пункты меню Project | Build.Если код введен верно, то в папке cgi-bin должен появиться файл hello.exe. Теперь запустим браузер и наберем адрес http:// localhost/cgi-bin/hello.exe,который указывает путь к созданному файлу.




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 496; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.