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

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

Apache模塊 mod_isapi

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

概述

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

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

top

用法

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

AddHandler isapi-isa .dll

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

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

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

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

top

附加注釋

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

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

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

top

程序員注記

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

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

警告

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

HSE_REQ_SEND_RESPONSE_HEADER
如果在請求頭字符串變量中,請求頭的內(nèi)容后面緊跟一個(gè)空行(兩個(gè)連續(xù)的換行),然后再加上請求體的內(nèi)容,Apache能接受這一相應(yīng)的請求體。因?yàn)檎埱箢^變量是以NULL結(jié)束的,這個(gè)請求體里不能包含NULL。
HSE_REQ_DONE_WITH_SESSION
Apache認(rèn)為這是一個(gè)空操作,因?yàn)楫?dāng)ISAPI處理返回時(shí),會話就結(jié)束了。
HSE_REQ_MAP_URL_TO_PATH
Apache將虛擬名字轉(zhuǎn)換為物理名字。
HSE_APPEND_LOG_PARAMETER
這一日志信息可以在以下任一地方捕獲:

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

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

對于所有不支持的ServerSupportFunction調(diào)用,Apache返回FALSE ,同時(shí)將GetLastError的值置為ERROR_INVALID_PARAMETER 。

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

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

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

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

top

ISAPIAppendLogToErrors 指令

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

把ISAPI擴(kuò)展的HSE_APPEND_LOG_PARAMETER請求記錄在錯(cuò)誤日志中

top

ISAPIAppendLogToQuery 指令

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

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

top

ISAPICacheFile 指令

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

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

top

ISAPIFakeAsync 指令

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

當(dāng)設(shè)為on時(shí),模擬ISAPI回調(diào)的異步支持。

top

ISAPILogNotSupported 指令

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

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

top

ISAPIReadAheadBuffer 指令

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

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