CGI-скрипт – это довольно распространенное явление в веб-разработке, особенно в тех случаях, когда нужно создать интерактивные веб-страницы или реализовать способы для регистрации пользователей и комментировании контента сайта. В общем, когда нужна обработка и сбор информации или придать небольшую динамику статическим элементам страницы, тогда используются CGI-скрипты.
CGI – это не язык программирования, а стандарт по которому передается информация между внешней программой и ее серверной частью. По сути, CGI предлагает простой инструмент, который налаживает контакт между сервером и приложением и позволяет внутри приложения реализовать консоль для ввода какой-либо информации.
CGI – это интерфейс
CGI расшифровывается как «Common Gateway Interface», поэтому, в первую очередь, это интерфейс, хотя его еще называют утилитой, скриптом, шлюзом или программой. CGI-интерфейс создан таким образом, чтобы на него можно было воздействовать любым серверным языком программирования, либо сценариями, написанными на интерпретируемых языках. Самое важное, из того что умеет этот интерфейс – это воздействовать на базу данных: вносить в нее какие-то изменения, а также выбирать какую-то информацию.
Чтобы понять, где располагается CGI-скрипт в функционирующей цепочке «программное обеспечение и его сервер», нужно взглянуть на такую последовательность действий:
Браузер отправляет HTTP-запрос серверной части веб-страницы.
Сервер, как только получает запрос,сразу активирует исполнение определенного CGI-скрипта. То есть, сервер активирует небольшую программку, которая сможет выполнить какие-то манипуляции с информацией в базе данных или еще что-либо, главное чтобы решить проблему запроса браузера.
После того, как CGI-скрипт заканчивает свое исполнение, он возвращает серверу полученный результат. А результат – это и есть ответ на запрос, отправленный браузером.
Сервер получает от CGI-скрипта результат и отправляет его в качестве ответа браузеру.
CGI-скрипт не ограничен в своей функциональности и может исполнить на сервере задачу любой сложности, вплоть до того, что может самостоятельно обращаться к другим сторонним программам, если это необходимо серверу.
Как создать CGI
Не существует строгой регламентации по созданию и использованию CGI, поэтому довольно часто, когда говорят CGI, тогда подразумевают не интерфейс, а именно программу или скрипт. И в этом есть свой смысл, потому что CGI можно создать несколькими способами, а не одним каким-то инструментом. Например:
Когда говорят «CGI-программа», тогда это действительно является программой, написанной на каком-то языке программирования, например на: C, C++, Pascal, Delphi, Java, Python, Node.js и др.
Когда говорят «CGI-скрипт», тогда это действительно может быть скриптом, написанным для какого-нибудь интерпретатора, например для: shell, perl, command.com, tcl/tk и др.
По сути не важно на чем писать CGI. Самое важное, чтобы CGI-интерфейс отвечал трем основным требованиям:
Мог считывать стандартный поток ввода – stdin.
Мог заполучить значение переменной окружения 0 environment variables.
Мог выводить значения в стандартный поток вывода – stdout.
Так как, создание CGI особо не регламентируется, возникает одна проблема – такие интерфейсы не кроссплатфоменны и не переносимы. То есть, CGI создается под конкретные условия: определенную операционную систему, определенным языком и специально для какой-то программы.
Заключение
CGI – это не язык программирования и не какой-то специализированный софт. По CGI-интерфейсом может скрываться любая серверная программа, написанная на любом серверном языке программирования.
В ту эпоху, когда JavaScript еще не было, CGI-интерфейс был единственным инструментом, с помощью которого можно было наладить взаимосвязь с пользователем и придать статической HTML-странице минимальную динамику.
Web