CGI+Perl=?

Несмотря на доменирующее положение PHP на арене веб-кодинга, язык программирование Perl остаётся вполне конкурентноспособным. Так в чём же секрет успеха Perl+CGI?
CGI (Common Gateway Interface) — это интерфейс, который позволяет веб-серверу по запросу браузера запускать и выполнять какие-либо программы, а результат работы возврашать браузеру. Как правило, технология CGI реализуется одним из двух способов: либо с использованием языка Perl (*.pl), либо в виде CGI-приложений, создаваемх обычно на языке С.
CGI-скрипты размещаются в специально отведенной для этого папке, которая чаще всего называется cgi-bin (встречаются также: cgi, cgibin, c-bin). Основу CGI составляет широко распространенная в интернете технология передачи потока данных от объекта к объекту. Именно с её помощью организована работа многих чатов, форумов, гостевых книг, поисковиков и систем подсчёта рейтинга.
Реализованная в CGI обратная связь с сервером позволила задействовать такую способность как записывать файлы (раньше можно было так работать толко с cookies). Это резко повысило интерактивность веб-страниц — стало возможным создание счетчиков посещений, чего нельзя было делать с обычным html, java, VBScript. Иными словами, для того чтобы запустить подобный скрипт на исполнение, не требуется дополнительной компиляции.
Помимо упомянутых возможностей с помощью данной технологии можно организовать систему показа последовательности рекламных баннеров или автозагрузки файлов на сервер, создать форму отправки электронного письма непосредственно со страницы сайта или службу виртуальных открыток. При этом стоит отметить независимость от клиентского ПО — проблем с несоответствием браузеров не было.
Наиболее широкое распространение в качестве языка веб-программирования для CGI-приложений получил Perl (Practical Extaction and reporting Language — практический язык извлечений и отчётов).
Важным приемуществом Perl как языка веб-пргограммирования являются его мощные возможности при обработке текстовой информации. Кроме того, он более безопасен в использовании, чем С/С++. дело в том, что Perl не использует указателей, что предотвращает нарушения доступа к памяти и связанные с этим ошибки (не только переполнений буфера), также существует специальная версия taintperl, которая вообще запрещает ипользование каких-либо входных данных в качестве системных команд.
Предположу, что многих начинающих веб-кодеров просто отпугивает некоторая сложность perl и cgi, поэтому они иостанавливаются на связке php+mysql. И всё же, Perl способен на большее, чем кажется. В будущих статьях я продемонстрирую эту мысль на примерах.
Аналитика, 02/04/06
D3X
