Common Gateway Interface (CGI) — стандарт для связи прикладных программ с Web-сервером. Данные из формы, заполненной пользователем на странице Web, передаются CGI-приложению, которое может затем послать динамически сгенерированные компоненты информационного наполнения Web обратно браузеру пользователя.
CGI — далеко не новая технология. Каковы перспективы ее применения в Web?
Когда десять лет назад создавалась World Wide Web, она в первую очередь предназначалась для простого отображения документов.
Но практически с самого начала разработчики Web-ресурсов стремились найти способ передавать данные на Web-сервер из браузера пользователя, к примеру имя и пароль или данные для поиска.
CGI предлагает стандартный способ реализовать такую возможность. Когда пользователь вводит данные в форму, находящуюся на Web-странице, содержание этой формы передается на Web-сервер и через CGI-интерфейс направляется определенной программе для обработки.
Завершив обработку, программа может вернуть браузеру пользователя ранее существовавшую Web-страницу, новую страницу, сгенерированную «на лету», или информацию любого иного типа, которая может воспроизводиться браузером.
Благодаря гибкости интерфейса CGI с ним может использоваться практически любая программа, способная работать на Web-сервере и воспринимать данные в формате командной строки. К таковым относятся программы, написанные на Си, C++, Perl, Visual Basic и даже на разнообразных языках командных оболочек для ОС Unix.
Один из существенных недостатков CGI состоит в том, что последний запускает новую программу всякий раз, когда пользователь выбирает форму, которую собирается заполнять, поэтому Web-серверы с большим объемом трафика могут запускать тысячи программ одновременно, что серьезно сказывается на их скорости работы.
Специальные программы
Серьезным недостатком программ, написанных в расчете на CGI, считают то, что, как правило, их нельзя использовать повторно при изменении конфигурации Web-узлов.
В результате по прошествии нескольких лет многие крупные Web-узлы отказываются от механизма CGI в пользу серверов приложений. Как и CGI, серверы приложений получают данные, введенные пользователем, и возвращают Web-страницы или иную информацию. Но сервер приложений может обрабатывать данные, вводимые многими пользователями, в одной программе, тем самым значительно увеличивая суммарную эффективность.
Подходящее решение
Вышесказанное вовсе не означает, что сервер приложений подходит для всех случаев жизни. CGI — прекрасное решение для сети intranet, где обычно уровень трафика ниже, чем на внешних узлах. Это важно, поскольку обычно небольшим организациям и подразделениям не по карману заплатить дополнительно от 15 до 100 тыс. долл. за сервер приложений, в то время как поддержка CGI встраивается во все Web-серверы.
Программы CGI могут быть написаны практически на любом языке, к тому же CGI-интерфейс очень прост, так что разработчики Web могут соорудить простые утилиты CGI, что называется, на скорую руку.
Благодаря таким свойствам CGI превращается в практичное средство, используемое в экстренных ситуациях и для создания утилит, которые будут редко применяться на коммерческих Web-узлах.
«CGI не утратил своего значения, — считает Стив Робинс, аналитик компании The Yankee Group. — Но есть немало иных, более элегантных и эффективных способов интеграции с другими системами».
Иные возможности
Наряду с серверами приложений к альтернативным механизмам интеграции относятся Active Server Pages — универсальный сервер приложений, встроенный в Web-сервер Internet Informational Server компании Microsoft, а также сервлеты Java, которые представляют собой небольшие Java-программы, запускаемые на сервере.
«CGI как молоток, — заметил Рей Валдес, аналитик компании GartnerGroup. — Крупные Web-узлы могут использовать очень тонкие инструменты, но для авральной работы без молотка не обойтись».
Как работает CGI |
|