Программы-расширения серверной части с гибридным CGI

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

 

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

Этот процесс-партнер (системный сервис в Windows NT или демон в Unix) загружается только раз, обычно при загрузке операционной системы, и остается работать в фоновом режиме. Методы межпроцессных коммуникаций (например, именованные конвейеры - named pipes) позволяют одновременно нескольким CGI-программам общаться с одним системным сервисом или демоном. Большинство серверов (например, Web-серверы, серверы баз данных, FTP-серверы) выполнены

в качестве системных сервисов или демонов.

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

к источнику.

Расширения клиентской части

Расширением клиентской части, или просто клиентским расширением , называют программу, наращивающую возможности броузера. Клиентские расширения можно использовать для различных целей, но одной из основных задач является выполнение проверок значений, вводимых в поля (проверка ввода, реализованная в серверной части, увеличивает сетевой трафик и является обременительной для пользователей, поскольку для объяснения ошибки приходится возвращать всю HTML-страницу).Хотя формальная классификация клиентских расширений не проводится, в настоящее время их можно разделить на четыре категории: вспомогательные программы, подключаемые модули, Java-аплеты и программы на языке сценариев. [11]