Главная / ШКОЛА НАДПРОФ / Телеги технической мудрости / Что такое CGI
Что такое CGI
Артур mico@fep.ru
CGI технология это способ общения между http сервером (apache) и программой на скриптовом языке (php, python, perl, и т.п.). В любом случае, если клиент будет общаться с сервером через http, придётся использовать CGI для передачи данных и приёму их к клиенту и от него.
dim dimsmol@rambler.ru
Небольшое уточнение.
CGI это способ общения между http сервером и программой на любом языке.
При подключении всяких скриптовых языков (php, python, perl, и т.п.) на самом деле работает CGI-программка (хотя не обязательно скорее это будет ISAPI-расширение или плагин к браузеру), которая запускает нужный скрипт и отдает результат серверу.
Пишем прогу на любом языке, которая читает get-данные из системных переменных, post-данные из stdin и пишет результирующий html-код в stdout. Это и есть классический вариант использования CGI.
Обеспечить, чтобы вызвалась нужная прога, в системных переменных оказались get-параметры, в stdin post-параметры, а также чтобы выход
stdout был отправлен клиенту, должен web-сервер.
Это и есть CGI Common Gateway Interface.
Любые более сложные навороты, когда CGI играет роль посредника между сервером и чем-то еще (например скриптами), или используются плагины и расширения, словом CGI не называют.
Артур:
Да. Как-то я даже пробовал написать програмку на Си и запускал её на апаче через CGI интерфейc. Т.е. единственное, что требуется от программы возможность запуска на сервере и работой с stdin, stdout и системными переменными.
Термины
- stdin стандартный ввод (поток ввода, который предоставляется любому запускаемому консольному приложению)
- stdout стандартный вывод (поток вывода, который предоставляется любому запускаемому консольному приложению)
По-умолчанию stdin это поток символов, поступающих с клавиатуры, а stdout поток символов, выводимых на экран. Т.е. когда консольное приложение читает из stdin оно получает введенные с клавиатуры символы, а когда пишет в stdout записываемые символы выводятся на консоль. Но stdin и stdout могут быть переопределены. Например, stdin может быть потоком символов, генерируемым какой-либо программой, а stdout потоком, из которого некая программа будет получать символы. Такое переопределение и используется в CGI с помощью stdin и stdout web-сервер общается с генерирующей страницу программой.
- get-параметры,post-параметры параметры, приходящие с get и post http-запросами соответственно.
- http hypertext transfer protocol, протокол передачи гипертекста (наиболее широко используемый web-протокол)
- прога программа
Материалы по теме:
SSI или что такое «асясяй»
Школа HTML
|