diff options
author | Joshua Slive <slive@apache.org> | 2000-12-02 21:39:03 +0000 |
---|---|---|
committer | Joshua Slive <slive@apache.org> | 2000-12-02 21:39:03 +0000 |
commit | 951f821c851c3e7c1ba73c4290796e6079a84330 (patch) | |
tree | 494718cfb7aec3164097e6641db43af68ba43327 /docs/manual/mod/mod_isapi.html | |
parent | 15f9d66fb47091c2c45cacf4d7998cbe91de3e17 (diff) | |
download | httpd-951f821c851c3e7c1ba73c4290796e6079a84330.tar.gz |
Consistency enforcement for directives that take extensions and a
reformat of mod_isapi.html into the new standard format.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87157 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/mod/mod_isapi.html')
-rw-r--r-- | docs/manual/mod/mod_isapi.html | 209 |
1 files changed, 105 insertions, 104 deletions
diff --git a/docs/manual/mod/mod_isapi.html b/docs/manual/mod/mod_isapi.html index aefeb4d950..2e65758ee0 100644 --- a/docs/manual/mod/mod_isapi.html +++ b/docs/manual/mod/mod_isapi.html @@ -51,6 +51,15 @@ REL="Help" problems running their ISAPI extention. <STRONG>Please <EM>do not</EM> post such problems to Apache's lists or bug reporting pages.</STRONG></P> +<H2>Directives</H2> +<UL> +<LI><A HREF="#isapifilecache">ISAPIFileCache</A> +<LI><A HREF="#isapireadaheadbuffer">ISAPIReadAheadBuffer</A> +<LI><A HREF="#isapilognotsupported">ISAPILogNotSupported</A> +<LI><A HREF="#isapiappendlogtoerrors">ISAPIAppendLogToErrors</A> +<LI><A HREF="#isapiappendlogtoquery">ISAPIAppendLogToQuery</A> +</UL> + <H2>Usage</H2> <P>In the server configuration file, use the AddHandler directive to @@ -60,7 +69,7 @@ REL="Help" following line:</P> <PRE> - AddHandler isapi-isa dll + AddHandler isapi-isa .dll </PRE> <P>There is no capability within the Apache server to leave a requested @@ -80,14 +89,101 @@ REL="Help" <A HREF="#journal">Programmer's Journal</A> for additional details and clarification of the specific ISAPI support offered by mod_isapi.</P> -<H2>Directives</H2> -<UL> -<LI><A HREF="#isapifilecache">ISAPIFileCache</A> -<LI><A HREF="#isapireadaheadbuffer">ISAPIReadAheadBuffer</A> -<LI><A HREF="#isapilognotsupported">ISAPILogNotSupported</A> -<LI><A HREF="#isapiappendlogtoerrors">ISAPIAppendLogToErrors</A> -<LI><A HREF="#isapiappendlogtoquery">ISAPIAppendLogToQuery</A> -</UL> +<H2><A NAME="notes">Additional Notes</A></H2> + +<P>Apache's ISAPI implementation conforms to all of the ISAPI 2.0 + specification, except for some "Microsoft-specific" extensions dealing + with asynchronous I/O. Apache's I/O model does not allow asynchronous + reading and writing in a manner that the ISAPI could access. If an ISA + tries to access unsupported features, including async I/O, a message is + placed in the error log to help with debugging. Since these messages + can become a flood, the directive <CODE>ISAPILogNotSupported Off</CODE> + exists to quiet this noise.</P> + +<P>Some servers, like Microsoft IIS, load the ISAPI extension into the server + and keep it loaded until memory usage is too high, or unless configuration + options are specified. Apache currently loads and unloads the ISAPI + extension each time it is requested, unless the ISAPICacheFile directive + is specified. This is inefficient, but Apache's memory model makes this + the most effective method. Many ISAPI modules are subtly incompatible + with the Apache server, and unloading these modules helps to ensure the + stability of the server.</P> + +<P>Also, remember that while Apache supports ISAPI Extensions, it + <STRONG>does not support ISAPI Filters.</STRONG> Support for filters may + be added at a later date, but no support is planned at this time.</P> + +<H2><A NAME="journal">Programmer's Journal</A></H2> + +<P>If you are programming Apache 2.0 mod_isapi modules, you must limit your + calls to ServerSupportFunction to the following directives:</P> + +<DL> + <DT>HSE_REQ_SEND_URL_REDIRECT_RESP + <DD>Redirect the user to another location.<BR> + This must be a fully qualified URL (e.g. http://server/location). + <DT>HSE_REQ_SEND_URL + <DD>Redirect the user to another location.<BR> + This cannot be a fully qualified URL, you are not allowed + to pass the protocol or a server name (e.g. simply /location).<BR> + This redirection is handled by the server, not the browser.<BR> + <STRONG>Warning:</STRONG> in their recent documentation, Microsoft + appears to have abandoned the distinction between the two + HSE_REQ_SEND_URL functions. Apache continues to treat them as two + distinct functions with different requirements and behaviors. + <DT>HSE_REQ_SEND_RESPONSE_HEADER + <DD>Apache accepts a response body following the header if it follows + the blank line (two consecutive newlines) in the headers string + argument. This body cannot contain NULLs, since the headers + argument is NULL terminated. + <DT>HSE_REQ_DONE_WITH_SESSION + <DD>Apache considers this a no-op, since the session will be finished + when the ISAPI returns from processing. + <DT>HSE_REQ_MAP_URL_TO_PATH + <DD>Apache will translate a virtual name to a physical name. + <DT>HSE_APPEND_LOG_PARAMETER + <DD>This logged message may be captured in any of the following logs: + <UL> + <LI>in the \"%{isapi-parameter}n\" component in a CustomLog directive + <LI>in the %q log component with the ISAPIAppendLogToQuery On directive + <LI>in the error log with the ISAPIAppendLogToErrors On directive + </UL> + The first option, the %{isapi-parameter}n component, is always available + and prefered. + <DT>HSE_REQ_IS_KEEP_CONN + <DD>Will return the negotiated Keep-Alive status. + <DT>HSE_REQ_SEND_RESPONSE_HEADER_EX + <DD>Will behave as documented, although the fKeepConn flag is ignored. + <DT>HSE_REQ_IS_CONNECTED + <DD>Will report false if the request has been aborted. +</DL> + +<P>Apache returns FALSE to any unsupported call to ServerSupportFunction, and + sets the GetLastError value to ERROR_INVALID_PARAMETER.</P> + +<P>ReadClient retrieves the request body exceeding the initial buffer + (defined by ISAPIReadAheadBuffer). Based on the ISAPIReadAheadBuffer + setting (number of bytes to buffer prior to calling the ISAPI handler) + shorter requests are sent complete to the extension when it is invoked. + If the request is longer, the ISAPI extension must use ReadClient to + retrieve the remaining request body.</P> + +<P>WriteClient is supported, but only with the HSE_IO_SYNC flag or + no option flag (value of 0). Any other WriteClient request will + be rejected with a return value of FALSE, and a GetLastError + value of ERROR_INVALID_PARAMETER.</P> + +<P>GetServerVariable is supported, although extended server variables do not + exist (as defined by other servers.) All the usual Apache CGI environment + variables are available from GetServerVariable, as well as the ALL_HTTP + and ALL_RAW values.</P> + +<P>Apache 2.0 mod_isapi supports additional features introduced in later + versions of the ISAPI specification, as well as limited emulation of + async I/O and the TransmitFile semantics. Apache also supports preloading + ISAPI .dlls for performance, neither of which were not available under + Apache 1.3 mod_isapi.</P> + <HR> <H2><A NAME="isapifilecache">ISAPIFileCache directive</A></H2> @@ -274,102 +370,7 @@ REL="Help" Record HSE_APPEND_LOG_PARAMETER requests from ISAPI extentions to the query field (appended to the CustomLog %q component). <P> -<HR> - -<H2><A NAME="notes">Additional Notes</A></H2> - -<P>Apache's ISAPI implementation conforms to all of the ISAPI 2.0 - specification, except for some "Microsoft-specific" extensions dealing - with asynchronous I/O. Apache's I/O model does not allow asynchronous - reading and writing in a manner that the ISAPI could access. If an ISA - tries to access unsupported features, including async I/O, a message is - placed in the error log to help with debugging. Since these messages - can become a flood, the directive <CODE>ISAPILogNotSupported Off</CODE> - exists to quiet this noise.</P> - -<P>Some servers, like Microsoft IIS, load the ISAPI extension into the server - and keep it loaded until memory usage is too high, or unless configuration - options are specified. Apache currently loads and unloads the ISAPI - extension each time it is requested, unless the ISAPICacheFile directive - is specified. This is inefficient, but Apache's memory model makes this - the most effective method. Many ISAPI modules are subtly incompatible - with the Apache server, and unloading these modules helps to ensure the - stability of the server.</P> - -<P>Also, remember that while Apache supports ISAPI Extensions, it - <STRONG>does not support ISAPI Filters.</STRONG> Support for filters may - be added at a later date, but no support is planned at this time.</P> -<H2><A NAME="journal">Programmer's Journal</A></H2> - -<P>If you are programming Apache 2.0 mod_isapi modules, you must limit your - calls to ServerSupportFunction to the following directives:</P> - -<DL> - <DT>HSE_REQ_SEND_URL_REDIRECT_RESP - <DD>Redirect the user to another location.<BR> - This must be a fully qualified URL (e.g. http://server/location). - <DT>HSE_REQ_SEND_URL - <DD>Redirect the user to another location.<BR> - This cannot be a fully qualified URL, you are not allowed - to pass the protocol or a server name (e.g. simply /location).<BR> - This redirection is handled by the server, not the browser.<BR> - <STRONG>Warning:</STRONG> in their recent documentation, Microsoft - appears to have abandoned the distinction between the two - HSE_REQ_SEND_URL functions. Apache continues to treat them as two - distinct functions with different requirements and behaviors. - <DT>HSE_REQ_SEND_RESPONSE_HEADER - <DD>Apache accepts a response body following the header if it follows - the blank line (two consecutive newlines) in the headers string - argument. This body cannot contain NULLs, since the headers - argument is NULL terminated. - <DT>HSE_REQ_DONE_WITH_SESSION - <DD>Apache considers this a no-op, since the session will be finished - when the ISAPI returns from processing. - <DT>HSE_REQ_MAP_URL_TO_PATH - <DD>Apache will translate a virtual name to a physical name. - <DT>HSE_APPEND_LOG_PARAMETER - <DD>This logged message may be captured in any of the following logs: - <UL> - <LI>in the \"%{isapi-parameter}n\" component in a CustomLog directive - <LI>in the %q log component with the ISAPIAppendLogToQuery On directive - <LI>in the error log with the ISAPIAppendLogToErrors On directive - </UL> - The first option, the %{isapi-parameter}n component, is always available - and prefered. - <DT>HSE_REQ_IS_KEEP_CONN - <DD>Will return the negotiated Keep-Alive status. - <DT>HSE_REQ_SEND_RESPONSE_HEADER_EX - <DD>Will behave as documented, although the fKeepConn flag is ignored. - <DT>HSE_REQ_IS_CONNECTED - <DD>Will report false if the request has been aborted. -</DL> - -<P>Apache returns FALSE to any unsupported call to ServerSupportFunction, and - sets the GetLastError value to ERROR_INVALID_PARAMETER.</P> - -<P>ReadClient retrieves the request body exceeding the initial buffer - (defined by ISAPIReadAheadBuffer). Based on the ISAPIReadAheadBuffer - setting (number of bytes to buffer prior to calling the ISAPI handler) - shorter requests are sent complete to the extension when it is invoked. - If the request is longer, the ISAPI extension must use ReadClient to - retrieve the remaining request body.</P> - -<P>WriteClient is supported, but only with the HSE_IO_SYNC flag or - no option flag (value of 0). Any other WriteClient request will - be rejected with a return value of FALSE, and a GetLastError - value of ERROR_INVALID_PARAMETER.</P> - -<P>GetServerVariable is supported, although extended server variables do not - exist (as defined by other servers.) All the usual Apache CGI environment - variables are available from GetServerVariable, as well as the ALL_HTTP - and ALL_RAW values.</P> - -<P>Apache 2.0 mod_isapi supports additional features introduced in later - versions of the ISAPI specification, as well as limited emulation of - async I/O and the TransmitFile semantics. Apache also supports preloading - ISAPI .dlls for performance, neither of which were not available under - Apache 1.3 mod_isapi.</P> <!--#include virtual="footer.html" --> </BODY> </HTML> |