home *** CD-ROM | disk | FTP | other *** search
/ Netrunner 2004 October / NETRUNNER0410.ISO / regular / ActivePerl-5.8.4.810-MSWin32-x86.msi / _0b900e9d58d75dccfd502c1c5140a18b < prev    next >
Text File  |  2004-06-01  |  7KB  |  128 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3.  
  4. <head>
  5. <title>PerlIS - Perl for ISAPI</title>
  6. <link rel="STYLESHEET" href="../../Active.css" type="text/css" media="screen">
  7. </head>
  8.  
  9. <body>
  10.  
  11. <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#EAE2BB">
  12. <tr> 
  13. <td width="57"><a target=_blank href="http://www.ActiveState.com/ActivePerl/">
  14. <img src="../../images/activeperl_logo.gif" width="57" height="48" border="0" alt="ActivePerl"></a></td>
  15. <td><div align="center" class="heading">ActivePerl User Guide</div></td>
  16. <td width="112"><a target=_blank  href="http://www.ActiveState.com">
  17. <img src="../../images/AS_logo.gif" width="112" height="48" border="0"  alt="ActiveState" /></a></td>
  18. </tr>
  19. <tr>
  20. <td class="lineColour" colspan="3"></td>
  21. </tr>
  22. </table>
  23.  
  24. <h1>PerlIS - Perl for ISAPI</h1>
  25.  
  26. <ul>
  27.   <li><a class="doc" href="#NAME">NAME</a></li>
  28.   <li><a class="doc" href="#DESCRIPTION">DESCRIPTION</a>
  29.     <ul>
  30.       <li><a class="doc" href="#Sources_of_other_information">Sources of other information</a></li>
  31.       <li><a class="doc" href="#What_is_ISAPI_">What is ISAPI?</a></li>
  32.       <li><a class="doc" href="#What_is_Perl_for_ISAPI_">What is Perl for ISAPI?</a></li>
  33.       <li><a class="doc" href="#Where_can_I_get_Perl_for_ISAPI_">Where can I get Perl for
  34.         ISAPI?</a></li>
  35.       <li><a class="doc" href="#Why_should_I_use_Perl_for_ISAPI_">Why should I use Perl for
  36.         ISAPI rather than ActivePerl (perl.exe)?</a></li>
  37.       <li><a class="doc" href="#Where_s_the_source_code_for_Perl">Where's the source code
  38.         for Perl for ISAPI?</a></li>
  39.     </ul>
  40.   </li>
  41.   <li><a class="doc" href="#AUTHOR_AND_COPYRIGHT">AUTHOR AND COPYRIGHT</a></li>
  42. </ul>
  43.  
  44. <h2><a name="NAME">NAME</a></h2>
  45. <p>PerlIS - Perl for ISAPI</p>
  46.  
  47. <h2><a name="DESCRIPTION">DESCRIPTION</a></h2>
  48. <p>About Perl for ISAPI<font size="-1">.</font></p>
  49.  
  50. <h2><a name="Sources_of_other_information">Sources of other information</a></h2>
  51. <p>Information on Perl for ISAPI can also be found in <a class="doc" href="ActivePerl-Winfaq6.html">the
  52. ActivePerl-Winfaq6 manpage</a> and <a class="doc" href="ActivePerl-Winfaq7.html">the
  53. ActivePerl-Winfaq7 manpage</a>.</p>
  54.  
  55. <h2><a name="What_is_ISAPI_">What is ISAPI?</a></h2>
  56. <p>ISAPI (Internet Server Application Programming Interface) is an API for
  57. writing extensions to web servers. It was originally developed by Process
  58. Software, and adopted by Microsoft as its standard server API<font size="-1">.</font>
  59. It complements or replaces the Common Gateway Interface <font size="-1">(</font>CGI<font size="-1">),</font>
  60. the standard interprocess protocol for writing extensions to web servers.</p>
  61. <p>ISAPI's main advantage over CGI is that it uses dynamic-link library <font size="-1">(DLL)</font>
  62. function calls to communicate with extension components, rather than environment
  63. variables and standard <font size="-1">I/O,</font> as CGI does. There's a lot of
  64. overhead when starting new processes on Win32 platforms, and DLL calls eliminate
  65. the need for new processes, thus reducing the running time.</p>
  66. <p>Although it was originally developed for Microsoft Internet Information
  67. Server, many Windows NT-hosted web servers now support ISAPI<font size="-1">.</font>
  68. See <a class="doc" href="ActivePerl-Winfaq6.html#What_HTTP_servers_support_Perl_f">What HTTP
  69. servers support ActivePerl?</a> for the names of a few. If your server isn't
  70. there, check its documentation.</p>
  71.  
  72. <h2><a name="What_is_Perl_for_ISAPI_">What is Perl for ISAPI?</a></h2>
  73. <p>Perl for ISAPI<font size="-1">,</font> is an ISAPI extension that runs Perl
  74. scripts on Win32 platforms.</p>
  75. <p>Perl for ISAPI is mainly used for creating dynamic content on World Wide Web
  76. sites. Writing Perl scripts that run under PerlIS is not much different than
  77. writing scripts for the Common Gateway Interface <font size="-1">(</font>CGI<font size="-1">).</font></p>
  78. <p>Perl for ISAPI doesn't have much general purpose use. For general purpose
  79. programming, stick with the perl interpreter (<em>perl.exe</em>).</p>
  80. <p>You may also see Perl for ISAPI referred to as PerlIS. PerlIS is the name of
  81. the Perl for ISAPI DLL<font size="-1">.</font></p>
  82.  
  83. <h2><a name="Where_can_I_get_Perl_for_ISAPI_">Where can I get Perl for ISAPI?</a></h2>
  84. <p>Perl for ISAPI is distributed as a part of the ActivePerl distribution. You
  85. can optionally install it when installing ActivePerl.</p>
  86.  
  87. <h2><a name="Why_should_I_use_Perl_for_ISAPI_">Why should I use Perl for ISAPI
  88. rather than Perl for Win32 (perl.exe)?</a></h2>
  89. <p>The short answer is: it's faster. The long answer gets kind of technical, but
  90. it goes like this:</p>
  91. <p>The main advantage of PerlIS over <em>perl.exe</em> is that PerlIS runs as a
  92. DLL in the web server's process space. Because Win32 platforms set up a
  93. protected memory space for each process that is started, there's a lot of
  94. overhead in starting a new process or program. Passing scripts to an
  95. interpreter, such as <em>perl.exe</em>, requires starting a new process for
  96. every script, which gets expensive in terms of system resources.</p>
  97. <p>DLLs, on the other hand, don't need their own process space; they use the
  98. space of the process that calls them. They don't require nearly as much overhead
  99. to start, and once loaded they stay loaded until the calling process ends.
  100. PerlIS therefore runs Perl scripts with a quicker turn-around time than <em>perl.exe</em>.</p>
  101. <p>Extra care should be taken when you write PerlIS applications. It is
  102. difficult to crash the web server using <font size="-1">CGI,</font> but because
  103. the PerlIS <font size="-1">DLL</font> runs in the process space of the server,
  104. your web server is more susceptible to crashes and hangs caused by programming
  105. errors.</p>
  106.  
  107. <h2><a name="Where_s_the_source_code_for_Perl">Where's the source code for Perl
  108. for ISAPI?</a></h2>
  109. <p>The source for Perl for ISAPI is not distributed to the public.</p>
  110.  
  111. <h2><a name="AUTHOR_AND_COPYRIGHT">AUTHOR AND COPYRIGHT</a></h2>
  112. <p>This FAQ was originally assembled and maintained by Evangelo Prodromou. It
  113. has been revised and updated by Brian Jepson of O'Reilly & Associates, David
  114. Grove, David Dmytryshyn and David Sparks of ActiveState.</p>
  115. <p>This FAQ is in the public domain. If you use it, however, please ensure that
  116. you give credit to the original authors.</p>
  117. <table border="0" cellpadding="0" cellspacing="0" width="100%">
  118.   <tr>
  119.     <td class="block" valign="MIDDLE" width="100%" bgcolor="#cccccc"><strong>
  120.       <p class="block"> ActivePerl FAQ - PerlIS - Perl for ISAPI</p>
  121.       </strong></td>
  122.   </tr>
  123. </table>
  124.  
  125. </body>
  126.  
  127. </html>
  128.