伺服器端技術—-ISAPI與CGI比較
來源:互聯網
上載者:User
ISAPI ISAPI 伺服器擴充是可以被 HTTP 伺服器載入和調用的 DLL。網際網路服務器擴充也稱為 網際網路服務器應用程式 (ISA),用於增強符合 網際網路伺服器 API (ISAPI) 的伺服器的功能。ISA 通過瀏覽器應用程式調用,並且將相似的功能提供給通用閘道介面 (CGI) 應用程式。
ISAPI 伺服器擴充的優點
使用者可以填寫表單,然後單擊提交按鈕將資料發送到 Web 服務器並調用 ISA,ISA 可以處理這些資訊以提供自訂內容或將這些資訊儲存在資料庫中。Web 服務器擴充可以使用資料庫中的資訊動態產生 Web 頁,然後將其發送到客戶電腦進行顯示。應用程式可以使用 HTTP 和 HTML 添加其他自訂功能並將資料提供給用戶端。
伺服器擴充和篩選器均在 Web 服務器的進程空間中運行,這樣就為擴充伺服器的功能提供了有效手段。
ISAPI 與 CGI 有哪些相同和不同之處?
ISAPI 伺服器擴充為使用 網際網路服務器的通用閘道介面 (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) (HTTP) 的 網際網路服務器。如果選擇了符合 ISAPI 的 Web 服務器(如 IIS,Microsoft Internet 資訊服務),就可以利用伺服器擴充 DLL 建立小型、快速的 網際網路服務器應用程式。