CGI-программирование: Си, Perl

Автор: manager Понедельник, Март 17th, 2008 Нет комментариев

Рубрика: Интернет

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.

Источник: http://www.den.lv/

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты