Программирование CGI в Delphi и Kylix (статья)
Перевод с французского: Valery Votintsev
Взято из https://forum.sources.ru
Содержание:
· | Введение |
Введение
В настоящем руководстве объясняется, как программировать CGI на Delphi и Kylix.
Автор будет рад Вашим замечаниям и пожеланиям!
Уточнения:
Для работы с CGI вам потребуется Web-сервер (для Delphi - под Windows, а для Kylix - под Linux)... Автор тестировал свои программы на сервере Lotus Domino под NT, и на сервере Apache под Mandrake 7.0 (linux). Автор использовал Delphi 2.0, однако это руководство применимо и для Delphi 3,4,5, 6... и Kylix !Примечание:
Если вы планируете использовать ISAPI/NSAPI DLL, то лучше будет программировать на Delphi 5/6; однако настоящее руководство остается весьма полезным, если Вы желаете разобраться в том, как функционирует CGI.
Основные понятия
Ссылки на CGI-программу: На HTML-странице (или непосредственно в строке URL браузера) вы помещаете ссылку на вашу программу. Вот несколько примеров ссылок:Простая ссылка: <a href="/cgi-bin/program.exe">
Запрос вывода изображения: <img src="/cgi-bin/program.exe">
Форма с запросом типа GET: <form method=GET action="/cgi-bin/program.exe"> ... </form>
Форма с запросом типа POST: <form method=POST action="/cgi-bin/program.exe"> ... </form>
Прямое обращение по URL: http://www.tonserver.fr/cgi-bin/program.exe
Что такое cgi-bin: cgi-bin - это псевдоним каталога на сервере, который указывает на реальный каталог, в котором размещены все CGI программы. Например:Под Windows: c:\internet\delphi\cgi
Под Linux: /home/httpd/cgi-bin
Запуск CGI-программ: Когда пользователь кликает на ссылке, указывающей на CGI-программу, сервер запускает данную программу и ожидает от нее ответа. Ответ CGI-программы: Самым простым вариантом CGI программы может служить консольное приложение {$apptype console}, которое похоже на DOS-программу, однако работает под Windows 95/NT, или под Linux. Эта возможность позволяет тестировать CGI-программу локально, выводя результат работу на экран. Пример простейшей CGI-программы:Program ExampleCGI; {$apptype console} begin WriteLn('Content-type: text/html'); WriteLn; WriteLn('Всем привет !'); end.Разберем строки, выводимые программой: 1) WriteLn('Content-type: text/html'); - Content-type - это описание типа выводимых данных (в данном случае - текста HTML) 2) WriteLn; - Вывод пустой строки ОБЯЗАТЕЛЕН, для того, чтобы отделить "заголовок" документа от выводимого далее содержимого этого документа. 3) WriteLn('Всем привет !'); - Здесь выводится собственно тело документа, т.е. то, что мы увидим, если нажмем в браузере "Файл - Просмотр в виде HTML" Для обращения к программе в строке адреса в браузере необходимо набрать: http://ваш_сервер/cgi-bin/ExampleCGI Использование Writeln: Все, что выводится командой WRITELN, направляется в "устройство стандартного вывода" STDOUT и отправляется сервером в браузер пользователя. Интересно, что под Windows можно написать CGI-программу даже с помощью .BAT-файла! @ECHO OFF ECHO content-type: text/html ECHO. ECHO ^<HTML^>^<HEAD^>^<TITLE^>^</TITLE^>^</HEAD^>^<BODY^> ECHO Всем привет ! ECHO ^</BODY^>^</HTML^> Обратите внимание, что специальные символы, используемые в DOS (такие, как "<", ">", "&",...), необходимо предварять знаком "^". Не забывайте об этом при написании CGI с .BAT файлами...