CGI
CGI (от англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешней программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом или «скрипт» (сценарий), «CGI-программа». Принцип действия данного интерфейса заключается в том, что для обработки клиентского запроса сервер генерирует особую внешнюю программу – ответ.
Сам интерфейс разработан таким образом, чтобы можно было использовать любой язык программирования, который может работать со стандартными устройствами ввода/вывода. Довольно распространено написание CGI-скриптов на языке Perl, для критичных в плане быстродействия фрагментов приложений целесообразно использовать C/C++.
Программа Hello world написанная на Perl для CGI выглядит следующим образом:
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello, world!";Все скрипты, как правило, помещают в каталог cgi-bin сервера, но это необязательно: скрипт может располагаться где угодно, но при этом большинство веб-серверов требуют специальной настройки. В веб-сервере Apache, например, такая настройка может производиться при помощи общего файла настроек httpd.conf или с помощью файла .htaccess в том каталоге, где содержится этот скрипт.
CGI является одним из наиболее распространённых средств создания динамических веб-страниц.
Преимущества:
• Толерантность к использованию различных языков программирования• Универсальность: скрипты с его реализацией могут функционировать на различных платформах
• Наличие большого количества бесплатных скриптов
Недостатки:
• Расточительное использование серверных ресурсов: каждому клиентскому запросу соответствует персональный серверный ответ• Сложность отладки и установки скриптов, а также их синхронизации с формой