簡介
ISAPI 伺服器擴展是可以被 HTTP 伺服器載入和調用的 DLL。Internet 伺服器擴展也稱為 Internet 伺服器應用程式 (ISA),用於增強符合 Internet 伺服器 API (ISAPI) 的伺服器的功能。ISA 通過瀏覽器應用程式調用,並且將相似的功能提供給通用網關接口 (CGI) 應用程式。
優點
用戶可以填寫窗體,然單擊提交按鈕將數據傳送到 Web 伺服器並調用 ISA,ISA 可以處理這些信息以提供自定義內容或將這些信息存儲在資料庫中。Web 伺服器擴展可以使用資料庫中的信息動態生成 Web 頁,然後將其傳送到客戶計算機進行顯示。應用程式可以使用 HTTP 和 HTML 添加其他自定義功能並將數據提供給客戶端。
伺服器擴展和篩選器均在 Web 伺服器的進程空間中運行,這樣就為擴展伺服器的功能提供了有效的手段。
相關內容
ISAPI 與 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。
ISAPI 篩選器沒有等效的 CGI 篩選器。篩選器提供預處理和後處理在客戶端和伺服器之間傳送的所有數據的能力。
ISAPI 篩選器是什麼?
ISAPI 篩選器是在啟用 ISAPI 的 HTTP 伺服器上運行的 DLL,用以篩選與伺服器之間來回傳送的數據。該篩選器註冊事件的通知,例如登錄或 URL 映射。當發生選定事件時,篩選器被調用,並且您可以監視及更改數據(在數據從伺服器傳輸到客戶端或相反的過程中)。可以使用 ISAPI 篩選器提供增強的 HTTP 請求記錄(例如,跟蹤登錄到伺服器的用戶)、自定義加密、自定義壓縮或其他身份驗證方法。
需要什麼樣的 HTTP 伺服器來運行 ISAPI?
若要承載 Web 站點,必須具有支持超文本傳輸協定 (HTTP) 的 Internet 伺服器。如果選擇了符合 ISAPI 的 Web 伺服器(如 IIS,Microsoft Internet 信息服務),就可以利用伺服器擴展 DLL 創建小型、快速的 Internet 伺服器應用程式。