You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by sl...@locus.apache.org on 2000/12/02 22:18:17 UTC

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.  <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="#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,24 +68,117 @@
      following line:</P>
   
   <PRE>
  -    AddHandler isapi-isa dll
  +    AddHandler isapi-isa .dll
   </PRE>
   
   <P>ISAPI extensions are governed by the same permissions and restrictions 
      as CGI scripts.  That is, <CODE>Options ExecCGI</CODE> must be set for
      the directory that contains the ISAPI .dll file.</P>
   
  +<P>Now place an ISAPI .dll file into this web directory, with the 
  +   <CODE>Options ExecCGI</CODE> set properly, and it will be loaded and
  +   executed when requested by its URL.</P>
  +
   <P>Review the <A HREF="#notes">Additional Notes</A> and the
      <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="#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 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; 
  +   <CODE>ISAPILogNotSupported Off</CODE>, is introduced in Apache 1.3.13.</P>
  +
  +<P>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.</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 1.3 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 <EM>Apache 1.3.13 and later</EM>
  +    <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 <EM>Apache 1.3.13 and later</EM>
  +    <DD>Will return the negotiated Keep-Alive status.
  +  <DT>HSE_REQ_SEND_RESPONSE_HEADER_EX <EM>Apache 1.3.13 and later</EM>
  +    <DD>Will behave as documented, although the fKeepConn flag is ignored.
  +  <DT>HSE_REQ_IS_CONNECTED <EM>Apache 1.3.13 and later</EM>
  +    <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>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.</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 of Apache 1.3.13,
  +   the ALL_HTTP and ALL_RAW and variables are now available.</P>
  +
  +<P>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.</P>
  +
   <HR>
   
   <H2><A NAME="isapireadaheadbuffer">ISAPIReadAheadBuffer directive</A></H2>
  @@ -229,103 +330,7 @@
           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 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; 
  -   <CODE>ISAPILogNotSupported Off</CODE>, is introduced in Apache 1.3.13.</P>
  -
  -<P>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.</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 1.3 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 <EM>Apache 1.3.13 and later</EM>
  -    <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 <EM>Apache 1.3.13 and later</EM>
  -    <DD>Will return the negotiated Keep-Alive status.
  -  <DT>HSE_REQ_SEND_RESPONSE_HEADER_EX <EM>Apache 1.3.13 and later</EM>
  -    <DD>Will behave as documented, although the fKeepConn flag is ignored.
  -  <DT>HSE_REQ_IS_CONNECTED <EM>Apache 1.3.13 and later</EM>
  -    <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>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.</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 of Apache 1.3.13,
  -   the ALL_HTTP and ALL_RAW and variables are now available.</P>
  -
  -<P>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.</P>
   <!--#include virtual="footer.html" -->
   </BODY>
   </HTML>
  
  
  
  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 <CODE>type-map</CODE>; this is best done with a
   
   <PRE>
  -  AddHandler type-map var
  +  AddHandler type-map .var
   </PRE>
   
   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 @@
   
   <pre>
        Action add-footer /cgi-bin/footer.pl
  -     AddHandler add-footer html
  +     AddHandler add-footer .html
   </pre>
   
   <p>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 @@
     <!--#include virtual="header.html" -->
     <H1 ALIGN="CENTER">Apache Server Frequently Asked Questions</H1>
     <P>
  -  $Revision: 1.7 $ ($Date: 2000/11/12 00:25:31 $)
  +  $Revision: 1.8 $ ($Date: 2000/12/02 21:18:16 $)
     </P>
     <P>
     The latest version of this FAQ is always available from the main
  @@ -148,7 +148,7 @@
       a line such as
       <P>
       <DL>
  -     <DD><CODE>AddHandler cgi-script cgi</CODE>
  +     <DD><CODE>AddHandler cgi-script .cgi</CODE>
        </DD>
       </DL>
       <P></P>