Разработка INTRANET приложений

       

Прикладные интерфейсы Web-серверов


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

Прикладные интерфейсы Web-серверов призваны улучшить эту ситуацию. Они реализуются в виде динамических библиотек (DDL в Windows и совместно используемые объекты в UNIX) в адресном пространстве Web-сервера.

Два ведущих производителя Web-серверов, Netscape и Microsoft, разработали свои API расширения серверов: ISAPI для InternetInformationServer и NSAPI для серверов Netscape.

DLL-библиотеки ISAPI имеют две точки входа:

  • GetExtensionVersion - для получения номера версии расширений и строки описания при инициализации;
  • HttpExtensionProc - эквивалент main-процедуры расширения.

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

Основными функциями ISAPI являются:

  • GetServerVariable - запросить дополнительную информацию по имени;
  • ReadClient - считать информацию из тела HTTP-запроса броузера;
  • WriteClient - послать информацию HTTP-клиенту;
  • ServerSupportFunction - возвратить серверу информацию о расположении, переадресации и состоянии процесса.

Дополнительную информацию можно найти в IISSDK фирмы Microsoft по адресу: http://www/microsoft.com/intdev/ .

Интерфейс NSAPI аналогичен ISAPI, но является сложным, теснее связан с конфигурацией сервера, но и более гибок. Конфигурация каждой функции NSAPI должна быть задана в объектной базе данных конфигурации Netsite. Блоки параметров NSAPI основаны на парах name-value (имя-значение), что похоже на передачу диалоговых переменных HTML-форм. Дополнительную информацию по NSAPI можно получить в Netscape по адресу: http://www/netscape.com/newsref/std/server_api.html .



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