-
ISAPI
鎖定
ISAPI服務器擴展是可以被 HTTP 服務器加載和調用的 DLL。Internet 服務器擴展也稱為 Internet 服務器應用程序 (ISA),用於增強符合 Internet 服務器 API (ISAPI) 的服務器的功能。ISAPI ISA 通過瀏覽器應用程序調用,並且將相似的功能提供給通用網關接口 (CGI) 應用程序。
ISAPI運行方法
若要承載 Web 站點,必須具有支持超文本傳輸協議 (HTTP) 的 Internet 服務器。如果選擇了符合 ISAPI 的 Web 服務器(如 IIS,Microsoft Internet 信息服務),就可以利用服務器擴展 DLL 創建小型、快速的 Internet 服務器應用程序。
ISAPI優點
用户可以填寫窗體,然後單擊提交按鈕將數據發送到Web 服務器並調用 ISA,ISA 可以處理這些信息以提供自定義內容或將這些信息存儲在數據庫中。Web服務器擴展可以使用數據庫中的信息動態生成 Web 頁,然後將其發送到客户計算機進行顯示。應用程序可以使用 HTTP 和HTML添加其他自定義功能並將數據提供給客户端。
服務器擴展和篩選器均在 Web 服務器的進程空間中運行,這樣就為擴展服務器的功能提供了有效的手段。
CGI
ISAPI服務器擴展為使用 Internet 服務器的通用網關接口(CGI) 應用程序提供了另一種選擇。與 CGI 應用程序不同,ISA 在 HTTP服務器所在的同一地址空間運行,並且可以訪問可由 HTTP 服務器使用的所有資源。ISA 的系統開銷比 CGI 應用程序低,因為它們不要求創建其他進程,也不執行需要越過進程邊界的通信,而這種通信非常耗時。如果內存被其他進程所需要,擴展和篩選器DLL 都可能被卸載。
Internet客户端通過 HTTP服務器調用 ISA 的方法與調用 CGI 應用程序的方法一樣。例如,客户端可以這樣調用一個 CGI 應用程序:
http://sample/example.exe?Param1&Param2
它可以這樣調用一個執行相同功能的 ISA:
http://sample/example.dll?Param1&Param2
ISAPI 允許在一個 DLL 中有多個命令,這些命令作為 DLL 中CHttpServer對象的成員函數來實現。CGI 要求每個任務有一個單獨的名稱和一個到單獨的可執行文件的 URL 映射。每個新的 CGI 請求啓動一個新進程,而每個不同的請求包含在各自的可執行文件中,這些文件根據每個請求加載和卸載,因此系統開銷高於 ISA。