Прикладные интерфейсы 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 .