Установка Linux Red Hat 7.1

         

Интерфейс простого шлюза (CGI - Common Gateway Interface)



Интерфейс простого шлюза (CGI - Common Gateway Interface)

Для придания интерактивности Web-серверу наиболее широко применяется механизм CGI. При использовании CGI к HTTP-протоколу добавляется очень простое расширение для запроса статических файлов.

CGI обеспечивает стандартизованный метод запуска программы на сервере и передачи программе данных из формы на обработку. Эти программы можно писать практически на любом языке программирования или сценариев. Обычно используются С, Perl и Java.

Когда пользователь запрашивает CGI-программу (возможно, при предоставлении заполненной формы или щелчке на ссылке к программе) Web-сервер передает данные пользователя CGI-программе и ожидает, пока программа вернет результат. Данные, возвращенные CGI-npor-раммой, сразу же передаются клиенту тем же образом, каким возвращается браузеру содержимое статического файла. Правильное формирование данных, возвращаемых браузеру, и обработка непредвиденных обстоятельств входит в задачу CGI-программы.

В целом, технология CGI разработана достаточно хорошо. Простота метода передачи данных от сервера в CGI-программу и способ построения результирующих данных, которые программа возвращает серверу, означает, что можно создавать несложные CGI-программы, не имея большого опыта программирования.



Изменять и тестировать CGI-программы несложно, так как для их написания можно использовать популярные языки сценариев, например Perl.

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

Несмотря на все преимущества, CGI имеет серьезные недостатки, делающие его непривлекательным для некоторых Web-сайтов. Два главных недостатка относятся к категориям безопасности и скорости.

С момента появления Web в интерфейсе CGI были обнаружены значительные просчеты, позволяющие опытному злоумышленнику получить доступ к системе с Web-сервером, если сценарий плохо написан. Поэтому, использование CGI нежелательно на тех Web-серверах, где безопасность данных является первостепенной задачей - на большинстве корпоративных Internet и Intranet-серверов и особенно на сайтах, которые реализуют финансовые операции и продажу по кредитным карточкам в режиме on-line.

Интерфейс CGI не очень эффективен. Web-сервер запускает один или несколько процессов, которые отвечают на запросы клиента. Браузер запускает дочерние процессы для CGI-программы. передает данные новому процессу и ожидает его завершения. На загруженном сайте это может привести к большому числу новых процессов, нуждающихся в запуске за короткий период времени, особенно если CGI-сценарии используются интенсивно. Каждый запрос для CGI-программы приводит к запуску отдельного процесса.

Этот неэффективный способ обработки большого количества данных и запросов является причиной того, что многие ведущие Web серверы снабжены собственными API (Application Program Interfaces - Программный интерфейс приложений) для написания программ сервера.



Содержание раздела