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

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

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

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

Пример Пример скрипта Hello World на языке Python: #!/usr/bin/python print("Content-Type: text/plain\n\nHello, world!") Пример исходного кода программы на языке Pascal: Program first; Begin Writeln('Content-Type: text/plain'); Writeln; Writeln('Hello, world!'); End.

Пример программы Hello World на языке C: #include <stdio.h> int main(void) { printf("Content-Type: text/plain;charset=us-ascii\n\n"); printf("Hello, world!\n\n"); return 0; }

См. также FastCGI SCGI PCGI WSGI — стандарт взаимодействия между Python-программой и веб-сервером

Литература

Ссылки Стандарт CGI 1.1(RFC3875) CGI шаг за шагом

Категория:Веб-программирование Категория:Статьи с примерами кода Python