|
|
|
|
CGI-программирование: Си, Perl |
CGI.
Common Gateway Interface - Общий Интерфейс Шлюзов. Эта расшифровка мало чего
может сказать многим людям. На самом деле принцип CGI прост и естественен:
программа на стороне сервера принимает некие данные, обрабатывает их и выдает
ответ в виде Web-страницы. Это очень частое явление на сегодняшний день, и порой
даже не подозреваешь, что имеешь дело не с обычной страницей, а с результатом
работы CGI-скрипта. Область использования CGI широка, а цели разнообразны.
Каковы возможности CGI на самом деле? Это напрямую зависит от того, какой
инструмент выбран для написания скрипта. Язык, на котором пишется скрипт, должен
быть гибким и в тоже время мощным, так как предстоит не только постоянная работа
с файлами, но и с базой данных, ОС и Web-сервером. Самыми подходящими языками
для CGI-программирования являются Си/С++ и Perl. Последний наиболее часто
используется для этих целей из-за своей простоты, надежности и широте
возможностей.
Си/С++. Язык Cи по праву считается универсальным, и нашел свое место в среде
CGI. Его применение естественно в родной стихии - UNIX, на основе которой, в
большинстве случаев, и строится Web-узел. Cродни Си, для CGI-программирования
используется C++, подразумевая создание и уничтожение неких объектов, которые
реализуются в C++ через классы - по сути пользовательские типы данных. Очень
естественно создать, например класс Guestbook или DataBaseEntry, который
содержал бы в себе необходимые переменные и функции. Стоит заметить, что почти
все новые языки программирования: Java, JavaScript, Perl, содержат конструкции
схожие с конструкциями Си или же являющиеся их точными копиями. Поэтому
рекомендуется с начала изучить этот фундаментальный язык.
Perl. Этот язык уникален. Наряду с простотой в этом языке сосуществуют
надежность и мощь. Во-первых, в нем отсутствуют типы данных, что благоприятно
воздействует на написание CGI-скриптов. Во-вторых, очень много конструкций взято
из Си. Надо отметить, что в Perl часто используются регулярные выражения,
похожие на те, что применяются в сценариях UNIX Shell. Имеется удобный цикл
foreach и красивые, по сути, модификаторы выражений. Perl располагает
стандартной библиотекой, в которой есть функции поиска, работы с Web-сервером,
графикой, и т.п. Из этого можно сделать вывод, что для программиста знакомого с
UNIX не составит труда изучить Perl. Для примера, можете взглянуть на результат
работы CGI-программы,
написанной мной на Perl, для проведения голосования на сайте. Вообще, на этом
возможности только начинаются. Для написания такой программы достаточно уметь
работать с файлами из Perl, и немного, с переменными окружения Web-сервера. В
программе всего 156 строк, когда на языке Си понадобилось бы не менее 250 строк
кода. Это подчеркивает простоту и эффективность конструкций Perl.
CGI-скрипты. Не стоит думать, что за этим названием кроется что-то особенное и
отличное от простой программы. CGI-скрипт такая же программа, как и все
остальные, но со своими маленькими тонкостями. Самая простая цель для написания
такой программы есть желание полноценно обработать форму на Web-странице.
Полноценно значит не с помощью какого-нибудь JavaScript-а. Вам наконец-то надо
сохранить данные посетителя в файле или в базе данных. Для этого Вам надо
разобраться с методами передачи данных: GET или POST и правильно принять данные
программой, указанной в ACTION. Не забудьте напечатать строку:
"Content-Type: text/html \n\n"
в начале скрипта. Это сообщит Web-серверу,
какого типа будут выведены данные, иначе он вернет ошибку с кодом 500.
Убедитесь, что программа имеет права на исполнение от имени пользователя
Web-сервера. Далее, примите данные из входного потока (метод POST), или из
переменной окружения сервера QUERY_STRING (метод GET). Вы получите строку
вида:
var1=value1&var2=value2&var3=long%20value
- согласно с именами переменных Вашей
формы. Помните, что пробелы (%20) и специальные символы кодируются. В завершении
- пример простейшей CGI-программы на С++, на Perl.
|
 |
[an error occurred while processing this directive] |
 |
|
|
|
|