CGI

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

CGI (Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешней программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом, хотя многие предпочитают названия «скрипт» (сценарий) или «CGI-программа». По сути позволяет использовать консоль ввода и вывода для взаимодействия с клиентом.

Сам интерфейс разработан таким образом, чтобы можно было использовать любой язык программирования, который может работать со стандартными устройствами ввода-вывода. Такими возможностями обладают даже скрипты для встроенных командных интерпретаторов операционных систем, поэтому в простых случаях могут использоваться даже командные скрипты.

Все скрипты, как правило, помещают в каталог cgi (или cgi-bin) сервера, но это не обязательно: скрипт может располагаться где угодно, но при этом большинство веб-серверов требуют специальной настройки. В веб-сервере Apache, например, такая настройка может производиться при помощи общего файла настроек httpd.conf или с помощью файла .htaccess в том каталоге, где содержится этот скрипт.

CGI является одним из наиболее распространённых средств создания динамических сайтов.

CGI интерфейс был задуман именно для того, чтобы создавать динамический ответ сервера на запрос пользователя, в частности создавать код html. Когда сервер запускает cgi программу, он передаёт ей HTTP-запрос, пришедший от клинета. CGI программа должна проанализировать этот запрос и выдать html, соответствующий именно этому запросу. Изменился запрос — изменился ответ. Кроме того, cgi программа может использовать БД на сервере. Изменилось содержимое БД — изменился html.