欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

<-
Apache > HTTP Server > 文檔 > 版本2.2 > 模塊
   致謝 | 譯者聲明 | 本篇譯者:金步國 | 本篇譯稿最后更新:2006年1月26日 | 獲取最新版本

Apache模塊 mod_isapi

說明僅限于在Windows平臺上實現(xiàn)ISAPI擴展
狀態(tài)基本(B)
模塊名isapi_module
源文件mod_isapi.c
兼容性僅用于Win32

概述

本模塊實現(xiàn)了互聯(lián)網(wǎng)服務擴展應用程序編程接口(Internet Server extension API)。本模塊使得Windows上的Apache能有限地實現(xiàn)互聯(lián)網(wǎng)服務擴展(比如調用ISAPI的動態(tài)連接庫)。

ISAPI擴展模塊(.dll文件)是由第三方開發(fā)的。Apache開發(fā)組沒有編寫這些模塊,因此我們也不對它們提供支持。如果在運行ISAPI擴展過程中發(fā)生問題,請直接與ISAPI的作者聯(lián)系。不要將此類問題貼在Apache的郵件列表或錯誤反饋頁面上。

top

用法

在服務器配置文件中,使用AddHandler指令將isapi-isa處理器與ISAPI文件關聯(lián)起來,并通過文件擴展名來建議對應關系。要將任何一個.dll文件作為ISAPI擴展來處理,需要編輯httpd.conf文件,并加入以下行:

AddHandler isapi-isa .dll

Apache服務器不允許將服務于請求的模塊動態(tài)地加載,但可以通過在httpd.conf文件中,加入以下語句使一個模塊在Apache啟動時預先載入系統(tǒng),并使其駐留在系統(tǒng)中:

ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll

無論是否預載一個ISAPI擴展,所有的ISAPI擴展都使用與CGI腳本相同的許可限制來管理。也就是說,包含ISAPI動態(tài)連接庫的目錄必須要設置"Options ExecCGI"。

請參閱附加注釋程序員注記以得到關于mod_isapi所提供的特定的ISAPI支持的細節(jié)內容。

top

附加注釋

Apache的ISAPI實現(xiàn)了除部分用來處理異步I/O的微軟特定(Microsoft-specific)擴展以外的所有ISAPI 2.0規(guī)范。Apache的I/O模型不允許使用ISAPI可能用到的異步讀寫方式。如果ISAPI試圖調用不支持的功能,包括異步I/O,在錯誤日志中會顯示一條錯誤信息以方便系統(tǒng)的調試。由于這類錯誤信息可能會大量地產(chǎn)生,指令"ISAPILogNotSupported Off"可以使這類錯誤信息不被記錄。

在某些服務器上,比如微軟的IIS,ISAPI擴展在載入后將駐留在服務器上,直到內存占用過高,或是指定了不同的配置選項。Apache目前在每次請求時,都會加載和卸載特定的ISAPI擴展,除非指定了ISAPICacheFile指令。雖然這樣看來是效率很低的一種做法,但根據(jù)Apache的內存模式使用這種方式是最有效的。許多ISAPI模塊與Apache服務器有細微的兼容性問題,卸載這些模塊可以保證服務器的穩(wěn)定運行。

同時請記住Apache支持ISAPI擴展,但它不支持ISAPI過濾器。對于ISAPI過濾器的支持可能會在晚些時候加入,但目前沒有支持這一功能的計劃。

top

程序員注記

如果你正在開發(fā) Apache 2.0 mod_isapi模塊,你必須嚴格按照以下指令的限制來調用ServerSupportFunction

HSE_REQ_SEND_URL_REDIRECT_RESP
重定向用戶到其它的位置。必須使用完整的、合法的URL(比如:http://server/location)。
HSE_REQ_SEND_URL
重定向用戶到其它的位置。這里不能使用一個完整的URL,你不可以傳入?yún)f(xié)議或服務器名(例如:/location)。這類重定向由服務器來處理,不是瀏覽器。

警告

在最近發(fā)布的文檔中,微軟已經(jīng)試圖放棄這兩個HSE_REQ_SEND_URL函數(shù)的差別。但Apache還是將它們視為兩個不同的函數(shù)加以不同的實現(xiàn)。

HSE_REQ_SEND_RESPONSE_HEADER
如果在請求頭字符串變量中,請求頭的內容后面緊跟一個空行(兩個連續(xù)的換行),然后再加上請求體的內容,Apache能接受這一相應的請求體。因為請求頭變量是以NULL結束的,這個請求體里不能包含NULL。
HSE_REQ_DONE_WITH_SESSION
Apache認為這是一個空操作,因為當ISAPI處理返回時,會話就結束了。
HSE_REQ_MAP_URL_TO_PATH
Apache將虛擬名字轉換為物理名字。
HSE_APPEND_LOG_PARAMETER
這一日志信息可以在以下任一地方捕獲:

第一行的 %{isapi-parameter}n 元素總是可用的,并且是推薦的。

HSE_REQ_IS_KEEP_CONN
返回Keep-Alive的協(xié)商狀態(tài)。
HSE_REQ_SEND_RESPONSE_HEADER_EX
即使fKeepConn標志被忽略,還是按有證書的方式來處理。
HSE_REQ_IS_CONNECTED
如果請求退出則報告錯誤。

對于所有不支持的ServerSupportFunction調用,Apache返回FALSE ,同時將GetLastError的值置為ERROR_INVALID_PARAMETER 。

ReadClient越過初始緩沖區(qū)(由ISAPIReadAheadBuffer指令定義)得到請求的數(shù)據(jù)包。根據(jù)ISAPIReadAheadBuffer(在調用ISAPI處理前緩沖的數(shù)據(jù)字節(jié)數(shù))的設定,較小的請求包當請求被調用時,直接完全地傳送到ISAPI擴展。如果請求包很長,ISAPI擴展必須使用ReadClient得到剩下的請求數(shù)據(jù)。

支持WriteClient ,但只能使用HSE_IO_SYNC標志或不帶標志("0"值)。任何其它的WriteClient請求會被拒絕,并且返回FALSE ,同時GetLastError的值被置為ERROR_INVALID_PARAMETER 。

支持GetServerVariable ,雖然擴展服務變量不存在(定義在其它服務器上)。包括ALL_HTTPALL_RAW ,所有的常規(guī)Apache CGI環(huán)境變量都可以通過GetServerVariable得到。

Apache 2.0 mod_isapi支持后來版本的ISAPI規(guī)范中的新增功能,比如對異步I/O的有限仿真及TransmitFile語義。Apache同時也支持ISAPI .dlls 的預載入以提高性能,以上這些在 Apache1.3 mod_isapi都沒有實現(xiàn)。

top

ISAPIAppendLogToErrors 指令

說明把ISAPI擴展的HSE_APPEND_LOG_PARAMETER請求記錄在錯誤日志中
語法ISAPIAppendLogToErrors on|off
默認值ISAPIAppendLogToErrors off
作用域server config, virtual host, directory, .htaccess
覆蓋項FileInfo
狀態(tài)基本(B)
模塊mod_isapi

把ISAPI擴展的HSE_APPEND_LOG_PARAMETER請求記錄在錯誤日志中

top

ISAPIAppendLogToQuery 指令

說明把ISAPI擴展的HSE_APPEND_LOG_PARAMETER請求記錄在查詢域中
語法ISAPIAppendLogToQuery on|off
默認值ISAPIAppendLogToQuery on
作用域server config, virtual host, directory, .htaccess
覆蓋項FileInfo
狀態(tài)基本(B)
模塊mod_isapi

把ISAPI擴展的HSE_APPEND_LOG_PARAMETER請求記錄在查詢域中(追加在CustomLog %q元素后面)。

top

ISAPICacheFile 指令

說明啟動時載入的ISAPI動態(tài)連接庫
語法ISAPICacheFile file-path [file-path] ...
作用域server config, virtual host
狀態(tài)基本(B)
模塊mod_isapi

指定一個需在Apache服務啟動的時候載入的以空格分隔的文件列表,這些文件駐留在系統(tǒng)中直至服務器關閉。本指令可以為每個需要的ISAPI動態(tài)連接庫文件所重復。應指定每個文件的路徑。如果不是絕對路徑,則會基于ServerRoot來處理相對路徑。

top

ISAPIFakeAsync 指令

說明為ISAPI回調模擬異步支持
語法ISAPIFakeAsync on|off
默認值ISAPIFakeAsync off
作用域server config, virtual host, directory, .htaccess
覆蓋項FileInfo
狀態(tài)基本(B)
模塊mod_isapi

當設為on時,模擬ISAPI回調的異步支持。

top

ISAPILogNotSupported 指令

說明記錄ISAPI不支持的功能調用
語法ISAPILogNotSupported on|off
默認值ISAPILogNotSupported off
作用域server config, virtual host, directory, .htaccess
覆蓋項FileInfo
狀態(tài)基本(B)
模塊mod_isapi

在服務錯誤日志中記錄所有ISAPI擴展不支持的請求。本指令可以幫助系統(tǒng)管理員跟蹤錯誤。把這個指令定義為on以后,如果所有的ISAPI模塊都工作良好,應該把它設回為Off。

top

ISAPIReadAheadBuffer 指令

說明傳送到ISAPI擴展的預讀緩沖區(qū)大小
語法ISAPIReadAheadBuffer size
默認值ISAPIReadAheadBuffer 49152
作用域server config, virtual host, directory, .htaccess
覆蓋項FileInfo
狀態(tài)基本(B)
模塊mod_isapi

定義初始調用時傳送到ISAPI擴展的最大預讀緩沖區(qū)大小。所有其它的數(shù)據(jù)必須通過ReadClient回調功能得到;部分ISAPI擴展可能不支持ReadClient功能。請參考ISAPI擴展本身對相關問題描述。