From slive@locus.apache.org Sat Dec 2 21:18:17 2000 Return-Path: Mailing-List: contact apache-docs-help@apache.org; run by ezmlm Delivered-To: mailing list apache-docs@apache.org Received: (qmail 60131 invoked by uid 500); 2 Dec 2000 21:18:17 -0000 Delivered-To: apmail-httpd-docs-1.3-cvs@apache.org Received: (qmail 60128 invoked by uid 1173); 2 Dec 2000 21:18:17 -0000 Date: 2 Dec 2000 21:18:17 -0000 Message-ID: <20001202211817.60127.qmail@locus.apache.org> From: slive@locus.apache.org To: httpd-docs-1.3-cvs@apache.org Subject: cvs commit: httpd-docs-1.3/htdocs/manual/misc FAQ-F.html slive 00/12/02 13:18:16 Modified: htdocs/manual/mod mod_isapi.html htdocs/manual content-negotiation.html handler.html htdocs/manual/misc FAQ-F.html Log: Update all the examples I can find to use the leading dot when specifying extensions. Revision Changes Path 1.10 +109 -104 httpd-docs-1.3/htdocs/manual/mod/mod_isapi.html Index: mod_isapi.html =================================================================== RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/mod/mod_isapi.html,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -b -u -r1.9 -r1.10 --- mod_isapi.html 2000/10/08 06:26:10 1.9 +++ mod_isapi.html 2000/12/02 21:18:15 1.10 @@ -51,6 +51,14 @@ problems running their ISAPI extention. Please do not post such problems to Apache's lists or bug reporting pages.

+

Directives

+ +

Usage

In the server configuration file, use the AddHandler directive to @@ -60,24 +68,117 @@ following line:

  -    AddHandler isapi-isa dll
  +    AddHandler isapi-isa .dll
   

ISAPI extensions are governed by the same permissions and restrictions as CGI scripts. That is, Options ExecCGI must be set for the directory that contains the ISAPI .dll file.

+

Now place an ISAPI .dll file into this web directory, with the + Options ExecCGI set properly, and it will be loaded and + executed when requested by its URL.

+

Review the Additional Notes and the Programmer's Journal for additional details and clarification of the specific ISAPI support offered by mod_isapi.

-

Directives

- +

Additional Notes

+ +

Apache's ISAPI implementation conforms to all of the ISAPI 2.0 + specification, except for the "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, a new directive; + ISAPILogNotSupported Off, is introduced in Apache 1.3.13.

+ +

Some servers, like Microsoft IIS, load the ISA into the server, and + keep it loaded until memory usage is too high, or specific configuration + options are used. Apache currently loads and unloads the ISA for each + request. This is inefficient, but Apache's request model makes this + method the only method that currently works. Apache 2.0 is expected to + support more effective loading and caching methods, with more precise + control over individual ISAPI modules and directories.

+ +

Also, remember that while Apache supports ISAPI Extensions, it + does not support ISAPI Filters. Support for filters may + be added at a later date, but no support is planned at this time.

+ +

Programmer's Journal

+ +

If you are programming Apache 1.3 mod_isapi modules, you must limit your + calls to ServerSupportFunction to the following directives:

+ +
+
HSE_REQ_SEND_URL_REDIRECT_RESP +
Redirect the user to another location.
+ This must be a fully qualified URL (e.g. http://server/location). +
HSE_REQ_SEND_URL +
Redirect the user to another location.
+ This cannot be a fully qualified URL, you are not allowed + to pass the protocol or a server name (e.g. simply /location).
+ This redirection is handled by the server, not the browser.
+ Warning: 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. +
HSE_REQ_SEND_RESPONSE_HEADER +
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. +
HSE_REQ_DONE_WITH_SESSION +
Apache considers this a no-op, since the session will be finished + when the ISAPI returns from processing. +
HSE_REQ_MAP_URL_TO_PATH +
Apache will translate a virtual name to a physical name. +
HSE_APPEND_LOG_PARAMETER Apache 1.3.13 and later +
This logged message may be captured in any of the following logs: +
    +
  • in the \"%{isapi-parameter}n\" component in a CustomLog directive +
  • in the %q log component with the ISAPIAppendLogToQuery On directive +
  • in the error log with the ISAPIAppendLogToErrors On directive +
+ The first option, the %{isapi-parameter}n component, is always available + and prefered. +
HSE_REQ_IS_KEEP_CONN Apache 1.3.13 and later +
Will return the negotiated Keep-Alive status. +
HSE_REQ_SEND_RESPONSE_HEADER_EX Apache 1.3.13 and later +
Will behave as documented, although the fKeepConn flag is ignored. +
HSE_REQ_IS_CONNECTED Apache 1.3.13 and later +
Will report false if the request has been aborted. +
+ +

Apache returns FALSE to any unsupported call to ServerSupportFunction, and + sets the GetLastError value to ERROR_INVALID_PARAMETER.

+ +

Prior to Apache 1.3.13, ReadClient was a noop, and any request with a request + body greater than 48kb was rejected by mod_isapi. As of Apache 1.3.13, + ReadClient now 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.

+ +

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.

+ +

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 of Apache 1.3.13, + the ALL_HTTP and ALL_RAW and variables are now available.

+ +

Apache 2.0 mod_isapi may support additional features introduced in later + versions of the ISAPI specification, as well as limited emulation of + async I/O and the TransmitFile semantics. Apache 2.0 may also support + caching of ISAPI .dlls for performance. No further enhancements to the + Apache 1.3 mod_isapi features are anticipated.

+

ISAPIReadAheadBuffer directive

@@ -229,103 +330,7 @@ Record HSE_APPEND_LOG_PARAMETER requests from ISAPI extentions to the query field (appended to the CustomLog %q component).

-


- -

Additional Notes

- -

Apache's ISAPI implementation conforms to all of the ISAPI 2.0 - specification, except for the "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, a new directive; - ISAPILogNotSupported Off, is introduced in Apache 1.3.13.

- -

Some servers, like Microsoft IIS, load the ISA into the server, and - keep it loaded until memory usage is too high, or specific configuration - options are used. Apache currently loads and unloads the ISA for each - request. This is inefficient, but Apache's request model makes this - method the only method that currently works. Apache 2.0 is expected to - support more effective loading and caching methods, with more precise - control over individual ISAPI modules and directories.

- -

Also, remember that while Apache supports ISAPI Extensions, it - does not support ISAPI Filters. Support for filters may - be added at a later date, but no support is planned at this time.

- -

Programmer's Journal

- -

If you are programming Apache 1.3 mod_isapi modules, you must limit your - calls to ServerSupportFunction to the following directives:

- -
-
HSE_REQ_SEND_URL_REDIRECT_RESP -
Redirect the user to another location.
- This must be a fully qualified URL (e.g. http://server/location). -
HSE_REQ_SEND_URL -
Redirect the user to another location.
- This cannot be a fully qualified URL, you are not allowed - to pass the protocol or a server name (e.g. simply /location).
- This redirection is handled by the server, not the browser.
- Warning: 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. -
HSE_REQ_SEND_RESPONSE_HEADER -
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. -
HSE_REQ_DONE_WITH_SESSION -
Apache considers this a no-op, since the session will be finished - when the ISAPI returns from processing. -
HSE_REQ_MAP_URL_TO_PATH -
Apache will translate a virtual name to a physical name. -
HSE_APPEND_LOG_PARAMETER Apache 1.3.13 and later -
This logged message may be captured in any of the following logs: -
    -
  • in the \"%{isapi-parameter}n\" component in a CustomLog directive -
  • in the %q log component with the ISAPIAppendLogToQuery On directive -
  • in the error log with the ISAPIAppendLogToErrors On directive -
- The first option, the %{isapi-parameter}n component, is always available - and prefered. -
HSE_REQ_IS_KEEP_CONN Apache 1.3.13 and later -
Will return the negotiated Keep-Alive status. -
HSE_REQ_SEND_RESPONSE_HEADER_EX Apache 1.3.13 and later -
Will behave as documented, although the fKeepConn flag is ignored. -
HSE_REQ_IS_CONNECTED Apache 1.3.13 and later -
Will report false if the request has been aborted. -
-

Apache returns FALSE to any unsupported call to ServerSupportFunction, and - sets the GetLastError value to ERROR_INVALID_PARAMETER.

- -

Prior to Apache 1.3.13, ReadClient was a noop, and any request with a request - body greater than 48kb was rejected by mod_isapi. As of Apache 1.3.13, - ReadClient now 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.

- -

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.

- -

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 of Apache 1.3.13, - the ALL_HTTP and ALL_RAW and variables are now available.

- -

Apache 2.0 mod_isapi may support additional features introduced in later - versions of the ISAPI specification, as well as limited emulation of - async I/O and the TransmitFile semantics. Apache 2.0 may also support - caching of ISAPI .dlls for performance. No further enhancements to the - Apache 1.3 mod_isapi features are anticipated.

1.25 +1 -1 httpd-docs-1.3/htdocs/manual/content-negotiation.html Index: content-negotiation.html =================================================================== RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/content-negotiation.html,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -b -u -r1.24 -r1.25 --- content-negotiation.html 2000/11/22 20:47:56 1.24 +++ content-negotiation.html 2000/12/02 21:18:16 1.25 @@ -111,7 +111,7 @@ file suffix as type-map; this is best done with a
  -  AddHandler type-map var
  +  AddHandler type-map .var
   
in the server configuration file. See the comments in the sample config 1.21 +1 -1 httpd-docs-1.3/htdocs/manual/handler.html Index: handler.html =================================================================== RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/handler.html,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -b -u -r1.20 -r1.21 --- handler.html 2000/11/16 22:20:08 1.20 +++ handler.html 2000/12/02 21:18:16 1.21 @@ -108,7 +108,7 @@
        Action add-footer /cgi-bin/footer.pl
  -     AddHandler add-footer html
  +     AddHandler add-footer .html
   

Then the CGI script is responsible for sending the originally 1.8 +2 -2 httpd-docs-1.3/htdocs/manual/misc/FAQ-F.html Index: FAQ-F.html =================================================================== RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/misc/FAQ-F.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -b -u -r1.7 -r1.8 --- FAQ-F.html 2000/11/12 00:25:31 1.7 +++ FAQ-F.html 2000/12/02 21:18:16 1.8 @@ -31,7 +31,7 @@

Apache Server Frequently Asked Questions

- $Revision: 1.7 $ ($Date: 2000/11/12 00:25:31 $) + $Revision: 1.8 $ ($Date: 2000/12/02 21:18:16 $)

The latest version of this FAQ is always available from the main @@ -148,7 +148,7 @@ a line such as

-
AddHandler cgi-script cgi +
AddHandler cgi-script .cgi