home *** CD-ROM | disk | FTP | other *** search
/ Chip: Windows 2000 Professional Resource Kit / W2KPRK.iso / apps / perl / ActivePerl.exe / data.z / perlwin32faq2.html < prev    next >
Encoding:
Extensible Markup Language  |  1999-10-15  |  8.3 KB  |  225 lines

  1. <?xml version="1.0"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3.     "http://www.w3.org/TR/xhtml1/DTD/transitional.dtd">
  4. <html xmlns="http://www.w3.org/TR/xhtml1">
  5.   <head>
  6.     <title>PerlIS - Perl for ISAPI</title>
  7.     <link rev="made" href="mailto:bjepson@debian.ids.net" />
  8.     <meta name="GENERATOR" charset="iso-8859-1" />
  9.     <link rel="STYLESHEET" href="../win32prk.css" type="text/css"
  10.     media="screen" />
  11.   </head>
  12.  
  13.   <body bgcolor="#ffffff">
  14.     <!-- beginning of leaf header-->
  15.  
  16.     <table width="100%">
  17.       <tr>
  18.         <td bgcolor="000000" width="70" height="31"><a href= 
  19.         "http://www.activestate.com/"><img src="ASbutton.gif" alt= 
  20.         "ActiveState Home Page" border="0" width="68" height=
  21.         "30" /></a></td>
  22.  
  23.         <td width="10" bgcolor="#ffffff"> </td>
  24.  
  25.         <td valign="middle" bgcolor="#cc0066"><font face=
  26.         "sans-serif" size="+1" color="#ff99cc">   
  27.         Win32 FAQ</font></td>
  28.       </tr>
  29.     </table>
  30.     <!-- end of leaf content--><!-- INDEX BEGIN -->
  31.  
  32.     <ul>
  33.       <li><a href="#NAME">NAME</a></li>
  34.  
  35.       <li>
  36.         <a href="#DESCRIPTION">DESCRIPTION</a> 
  37.  
  38.         <ul>
  39.           <li><a href="#Sources_of_other_information">Sources of
  40.           other information</a></li>
  41.  
  42.           <li><a href="#What_is_ISAPI_">What is ISAPI?</a></li>
  43.  
  44.           <li><a href="#What_is_Perl_for_ISAPI_">What is Perl for
  45.           ISAPI?</a></li>
  46.  
  47.           <li><a href="#Where_can_I_get_Perl_for_ISAPI_">Where can
  48.           I get Perl for ISAPI?</a></li>
  49.  
  50.           <li><a href="#Why_should_I_use_Perl_for_ISAPI_">Why
  51.           should I use Perl for ISAPI rather than Perl for Win32
  52.           (perl.exe)?</a></li>
  53.  
  54.           <li><a href="#Where_s_the_source_code_for_Perl">Where's
  55.           the source code for Perl for ISAPI?</a></li>
  56.         </ul>
  57.       </li>
  58.  
  59.       <li><a href="#AUTHOR_AND_COPYRIGHT">AUTHOR AND
  60.       COPYRIGHT</a></li>
  61.     </ul>
  62.     <!-- INDEX END -->
  63.     <hr />
  64.     <br />
  65.  
  66.     <h1><a name="NAME">NAME</a></h1>
  67.  
  68.     <p>PerlIS - Perl for <font size="-1">ISAPI</font></p>
  69.     <br />
  70.     <hr />
  71.  
  72.     <h1><a name="DESCRIPTION">DESCRIPTION</a></h1>
  73.  
  74.     <p>About Perl for <font size="-1">ISAPI.</font></p>
  75.     <br />
  76.     <hr />
  77.  
  78.     <h2><a name="Sources_of_other_information">Sources of other
  79.     information</a></h2>
  80.  
  81.     <p>Information on Perl for <font size="-1">ISAPI</font> can
  82.     also be found in <a href="perlwin32faq6.html#">the
  83.     perlwin32faq6 manpage</a> and <a href="perlwin32faq7.html#">the
  84.     perlwin32faq7 manpage</a>.</p>
  85.     <br />
  86.     <hr />
  87.  
  88.     <h2><a name="What_is_ISAPI_">What is ISAPI?</a></h2>
  89.  
  90.     <p> <font size="-1">ISAPI</font> (Internet Server Application
  91.     Programming Interface) is an <font size="-1">API</font> for
  92.     writing extensions to web servers. It was originally developed
  93.     by Process Software, and adopted by Microsoft as its standard
  94.     server <font size="-1">API.</font> It complements or replaces
  95.     the Common Gateway Interface <font size="-1">(CGI),</font> the
  96.     standard interprocess protocol for writing extensions to web
  97.     servers.</p>
  98.  
  99.     <p>ISAPI's main advantage over <font size="-1">CGI</font> is
  100.     that it uses dynamic-link library <font size="-1">(DLL)</font>
  101.     function calls to communicate with extension components, rather
  102.     than environment variables and standard <font size="-1">
  103.     I/O,</font> as <font size="-1">CGI</font> does. There's a lot
  104.     of overhead when starting new processes on Win32 platforms, and
  105.     <font size="-1">DLL</font> calls eliminate the need for new
  106.     processes, thus reducing the running time</p>
  107.  
  108.     <p>Although it was originally developed for Microsoft Internet
  109.     Information Server, many Windows NT-hosted web servers now
  110.     support <font size="-1">ISAPI.</font> See <a href= 
  111.     "perlwin32faq6.html#What_HTTP_servers_support_Perl_f">What HTTP
  112.     servers support Perl for Win32?</a> for the names of a few. If
  113.     your server isn't there, check its documentation.</p>
  114.     <br />
  115.     <hr />
  116.  
  117.     <h2><a name="What_is_Perl_for_ISAPI_">What is Perl for
  118.     ISAPI?</a></h2>
  119.  
  120.     <p>Perl for <font size="-1">ISAPI,</font> is an <font size=
  121.     "-1">ISAPI</font> extension that runs Perl scripts on Win32
  122.     platforms.</p>
  123.  
  124.     <p>Perl for <font size="-1">ISAPI</font> is mainly used for
  125.     creating dynamic content on World Wide Web sites. Writing Perl
  126.     scripts that run under PerlIS is not much different than
  127.     writing scripts for the Common Gateway Interface <font size=
  128.     "-1">(CGI).</font></p>
  129.  
  130.     <p>Perl for <font size="-1">ISAPI</font> doesn't have much
  131.     general purpose use. For general purpose programming, stick
  132.     with the perl interpreter (<em>perl.exe</em>).</p>
  133.  
  134.     <p>You may also see Perl for <font size="-1">ISAPI</font>
  135.     referred to as PerlIS. PerlIS is the name of the Perl for <font
  136.     size="-1">ISAPI</font> <font size="-1">DLL.</font></p>
  137.     <br />
  138.     <hr />
  139.  
  140.     <h2><a name="Where_can_I_get_Perl_for_ISAPI_">Where can I get
  141.     Perl for ISAPI?</a></h2>
  142.  
  143.     <p>Perl for <font size="-1">ISAPI</font> is distributed as a
  144.     part of the Perl for Win32 distribution You can optionally
  145.     install it when installing Perl for Win32. Perl for Win32 is
  146.     available from the ActiveState web site at <a href= 
  147.     "http://www.ActiveState.com">http://www.ActiveState.com</a> and
  148.     from any <font size="-1">CPAN</font> site.</p>
  149.     <br />
  150.     <hr />
  151.  
  152.     <h2><a name="Why_should_I_use_Perl_for_ISAPI_">Why should I use
  153.     Perl for ISAPI rather than Perl for Win32 (perl.exe)?</a></h2>
  154.  
  155.     <p>The short answer is: it's faster. The long answer gets kind
  156.     of technical, but it goes like this:</p>
  157.  
  158.     <p>The main advantage of PerlIS over <em>perl.exe</em> is that
  159.     PerlIS runs as a <font size="-1">DLL</font> in the web server's
  160.     process space. Because Win32 platforms set up a protected
  161.     memory space for each process that is started, there's a lot of
  162.     overhead in starting a new process or program. Passing scripts
  163.     to an interpreter, such as <em>perl.exe</em>, requires starting
  164.     a new process for every script, which gets expensive in terms
  165.     of system resources.</p>
  166.  
  167.     <p>DLLs, on the other hand, don't need their own process space;
  168.     they use the space of the process that calls them. They don't
  169.     require nearly as much overhead to start, and once loaded they
  170.     stay loaded until the calling process ends. PerlIS therefore
  171.     runs Perl scripts with a quicker turn-around time than <em>
  172.     perl.exe</em>.</p>
  173.  
  174.     <p>Extra care should be taken when you write PerlIS
  175.     applications. It is difficult to crash the web server using
  176.     <font size="-1">CGI,</font> but because the PerlIS <font size= 
  177.     "-1">DLL</font> runs in the process space of the server, your
  178.     web server is more susceptible to crashes and hangs caused by
  179.     programming errors.</p>
  180.     <br />
  181.     <hr />
  182.  
  183.     <h2><a name="Where_s_the_source_code_for_Perl">Where's the
  184.     source code for Perl for ISAPI?</a></h2>
  185.  
  186.     <p>The source for Perl for <font size="-1">ISAPI</font> is not
  187.     distributed to the public.</p>
  188.     <br />
  189.     <hr />
  190.  
  191.     <h1><a name="AUTHOR_AND_COPYRIGHT">AUTHOR AND
  192.     COPYRIGHT</a></h1>
  193.  
  194.     <p>This <font size="-1">FAQ</font> was originally assembled and
  195.     maintained by Evangelo Prodromou. <a href= 
  196.     "mailto:evangelo@endcontsw.com">evangelo@endcontsw.com.</a> It
  197.     has been revised and updated by Brian Jepson of O'Reilly and
  198.     Associates, and David Grove and David Dmytryshyn of
  199.     ActiveState.</p>
  200.  
  201.     <p>This <font size="-1">FAQ</font> is in the public domain. If
  202.     you use it, however, please ensure that you give credit to the
  203.     original authors.</p>
  204.  
  205.     <p><!-- beginning of leaf footer--></p>
  206.  
  207.     <table width="100%">
  208.       <tr>
  209.         <td bgcolor="000000" width="70" height="31"><a href= 
  210.         "http://www.activestate.com/"><img src="ASbutton.gif" alt= 
  211.         "ActiveState Home Page" border="0" width="68" height=
  212.         "30" /></a></td>
  213.  
  214.         <td width="10"> </td>
  215.  
  216.         <td valign="middle" bgcolor="#cc0066"><font face=
  217.         "sans-serif" size="+1" color="#ff99cc">   
  218.         Win32 FAQ</font></td>
  219.       </tr>
  220.     </table>
  221.     <!-- end  of leaf footer-->
  222.   </body>
  223. </html>
  224.  
  225.