Что такое CGI?

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

Режим работы и применение

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

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

Примеры применения общего шлюзового интерфейса

  • Корзина покупок: Когда покупатель добавляет товар в корзину, информация автоматически обрабатывается CGI-скриптом и отправляется на сервер.
  • Комментарии: Когда пользователь заполняет раздел комментария и нажимает кнопку «Отправить», текст сначала передается CGI-сценарию, который затем передает его на сервер.
  • Формы: Записи в онлайн-формах, используемых для заявок или сообщений, сначала обрабатываются интерфейсом Common Gateway Interface, а затем передаются на сервер.
  • Статистика веб-сайта: Если на сайте отображается количество посещений, то, как правило, используется CGI.
  • Server Side Includes: Благодаря интерфейсам Common Gateway Interfaces текстовое содержимое может загружаться на сайт динамически.
  • Тестирование программного обеспечения: Разработчики могут использовать CGI-скрипты для тестирования функций внешних онлайн-приложений для веб-сайтов через браузер.

Выполняется ли сценарий или нет, можно узнать, проверив URL-адрес. Даже пользователи с минимальными знаниями программирования или вообще без них могут распознать обрабатываемый сценарий. Используя специальную строку символов, сервер получает всю необходимую информацию от скрипта. Обычно различают три различных метода передачи данных:

  • QUERY_STRING: используется для большинства пользовательских запросов
  • PATH_INFO: используется для передачи контекстной информации веб-сайта
  • Stdin: используется для обработки дополнительных записей пользователя

Преимущества и недостатки общего шлюзового интерфейса

Несмотря на свой возраст, интерфейс Common Gateway Interface является одним из наиболее часто используемых интерфейсов в веб-разработке. Несмотря на то, что эта технология имеет множество преимуществ, у нее есть и недостатки.

Преимущества

CGI — это простой и эффективный метод создания динамического содержимого веб-сайта. В то же время, приложения CGI не нужно сохранять на сервере, что позволяет не использовать ресурсы без необходимости. Кроме того, Common Gateway Interface совместим с множеством языков программирования, которые легко интегрируются в существующую инфраструктуру. И последнее, но не менее важное: стандарт с открытым исходным кодом является бесплатным и может быть мгновенно использован разработчиками.

Недостатки

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

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

Альтернативы интерфейсам общего шлюза

За последние несколько лет были разработаны различные технологии интерфейсов, которые расширяют возможности CGI. В то же время они пытаются устранить один из его основных недостатков: перезагрузку скрипта при каждом новом запросе пользователя.

ASP (Active Server Pages): ASP был разработан компанией Microsoft для своего собственного сервера, но теперь доступен для различных типов серверов. Интерпретатор ASP встроен в веб-сервер, поэтому для его использования не нужно запускать новый процесс. Команды ASP могут быть непосредственно записаны в HTML-страницы. Как и CGI, ASP можно использовать в различных языках программирования.

PHP: Наряду с Perl, PHP является одним из наиболее широко используемых языков сценариев в веб-разработке. Многое из того, что может делать CGI-скрипт, может делать и PHP. Однако интерпретатор PHP непосредственно интегрирован в веб-сервер.

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

FastCGI: При использовании FastCGI динамические запросы от веб-сервера могут обрабатываться непосредственно через интерфейс Perl без необходимости перезапуска процессора. FastCGI совместим с CGI и поддерживается целым рядом веб-серверов.

Оцените статью
cdelat.ru
Добавить комментарий