home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/transitional.dtd">
- <html xmlns="http://www.w3.org/TR/xhtml1">
- <head>
- <title>PerlIS - Perl for ISAPI</title>
- <link rev="made" href="mailto:bjepson@debian.ids.net" />
- <meta name="GENERATOR" charset="iso-8859-1" />
- <link rel="STYLESHEET" href="../win32prk.css" type="text/css"
- media="screen" />
- </head>
-
- <body bgcolor="#ffffff">
- <!-- beginning of leaf header-->
-
- <table width="100%">
- <tr>
- <td bgcolor="000000" width="70" height="31"><a href=
- "http://www.activestate.com/"><img src="ASbutton.gif" alt=
- "ActiveState Home Page" border="0" width="68" height=
- "30" /></a></td>
-
- <td width="10" bgcolor="#ffffff"> </td>
-
- <td valign="middle" bgcolor="#cc0066"><font face=
- "sans-serif" size="+1" color="#ff99cc">
- Win32 FAQ</font></td>
- </tr>
- </table>
- <!-- end of leaf content--><!-- INDEX BEGIN -->
-
- <ul>
- <li><a href="#NAME">NAME</a></li>
-
- <li>
- <a href="#DESCRIPTION">DESCRIPTION</a>
-
- <ul>
- <li><a href="#Sources_of_other_information">Sources of
- other information</a></li>
-
- <li><a href="#What_is_ISAPI_">What is ISAPI?</a></li>
-
- <li><a href="#What_is_Perl_for_ISAPI_">What is Perl for
- ISAPI?</a></li>
-
- <li><a href="#Where_can_I_get_Perl_for_ISAPI_">Where can
- I get Perl for ISAPI?</a></li>
-
- <li><a href="#Why_should_I_use_Perl_for_ISAPI_">Why
- should I use Perl for ISAPI rather than Perl for Win32
- (perl.exe)?</a></li>
-
- <li><a href="#Where_s_the_source_code_for_Perl">Where's
- the source code for Perl for ISAPI?</a></li>
- </ul>
- </li>
-
- <li><a href="#AUTHOR_AND_COPYRIGHT">AUTHOR AND
- COPYRIGHT</a></li>
- </ul>
- <!-- INDEX END -->
- <hr />
- <br />
-
- <h1><a name="NAME">NAME</a></h1>
-
- <p>PerlIS - Perl for <font size="-1">ISAPI</font></p>
- <br />
- <hr />
-
- <h1><a name="DESCRIPTION">DESCRIPTION</a></h1>
-
- <p>About Perl for <font size="-1">ISAPI.</font></p>
- <br />
- <hr />
-
- <h2><a name="Sources_of_other_information">Sources of other
- information</a></h2>
-
- <p>Information on Perl for <font size="-1">ISAPI</font> can
- also be found in <a href="perlwin32faq6.html#">the
- perlwin32faq6 manpage</a> and <a href="perlwin32faq7.html#">the
- perlwin32faq7 manpage</a>.</p>
- <br />
- <hr />
-
- <h2><a name="What_is_ISAPI_">What is ISAPI?</a></h2>
-
- <p> <font size="-1">ISAPI</font> (Internet Server Application
- Programming Interface) is an <font size="-1">API</font> for
- writing extensions to web servers. It was originally developed
- by Process Software, and adopted by Microsoft as its standard
- server <font size="-1">API.</font> It complements or replaces
- the Common Gateway Interface <font size="-1">(CGI),</font> the
- standard interprocess protocol for writing extensions to web
- servers.</p>
-
- <p>ISAPI's main advantage over <font size="-1">CGI</font> is
- that it uses dynamic-link library <font size="-1">(DLL)</font>
- function calls to communicate with extension components, rather
- than environment variables and standard <font size="-1">
- I/O,</font> as <font size="-1">CGI</font> does. There's a lot
- of overhead when starting new processes on Win32 platforms, and
- <font size="-1">DLL</font> calls eliminate the need for new
- processes, thus reducing the running time</p>
-
- <p>Although it was originally developed for Microsoft Internet
- Information Server, many Windows NT-hosted web servers now
- support <font size="-1">ISAPI.</font> See <a href=
- "perlwin32faq6.html#What_HTTP_servers_support_Perl_f">What HTTP
- servers support Perl for Win32?</a> for the names of a few. If
- your server isn't there, check its documentation.</p>
- <br />
- <hr />
-
- <h2><a name="What_is_Perl_for_ISAPI_">What is Perl for
- ISAPI?</a></h2>
-
- <p>Perl for <font size="-1">ISAPI,</font> is an <font size=
- "-1">ISAPI</font> extension that runs Perl scripts on Win32
- platforms.</p>
-
- <p>Perl for <font size="-1">ISAPI</font> is mainly used for
- creating dynamic content on World Wide Web sites. Writing Perl
- scripts that run under PerlIS is not much different than
- writing scripts for the Common Gateway Interface <font size=
- "-1">(CGI).</font></p>
-
- <p>Perl for <font size="-1">ISAPI</font> doesn't have much
- general purpose use. For general purpose programming, stick
- with the perl interpreter (<em>perl.exe</em>).</p>
-
- <p>You may also see Perl for <font size="-1">ISAPI</font>
- referred to as PerlIS. PerlIS is the name of the Perl for <font
- size="-1">ISAPI</font> <font size="-1">DLL.</font></p>
- <br />
- <hr />
-
- <h2><a name="Where_can_I_get_Perl_for_ISAPI_">Where can I get
- Perl for ISAPI?</a></h2>
-
- <p>Perl for <font size="-1">ISAPI</font> is distributed as a
- part of the Perl for Win32 distribution You can optionally
- install it when installing Perl for Win32. Perl for Win32 is
- available from the ActiveState web site at <a href=
- "http://www.ActiveState.com">http://www.ActiveState.com</a> and
- from any <font size="-1">CPAN</font> site.</p>
- <br />
- <hr />
-
- <h2><a name="Why_should_I_use_Perl_for_ISAPI_">Why should I use
- Perl for ISAPI rather than Perl for Win32 (perl.exe)?</a></h2>
-
- <p>The short answer is: it's faster. The long answer gets kind
- of technical, but it goes like this:</p>
-
- <p>The main advantage of PerlIS over <em>perl.exe</em> is that
- PerlIS runs as a <font size="-1">DLL</font> in the web server's
- process space. Because Win32 platforms set up a protected
- memory space for each process that is started, there's a lot of
- overhead in starting a new process or program. Passing scripts
- to an interpreter, such as <em>perl.exe</em>, requires starting
- a new process for every script, which gets expensive in terms
- of system resources.</p>
-
- <p>DLLs, on the other hand, don't need their own process space;
- they use the space of the process that calls them. They don't
- require nearly as much overhead to start, and once loaded they
- stay loaded until the calling process ends. PerlIS therefore
- runs Perl scripts with a quicker turn-around time than <em>
- perl.exe</em>.</p>
-
- <p>Extra care should be taken when you write PerlIS
- applications. It is difficult to crash the web server using
- <font size="-1">CGI,</font> but because the PerlIS <font size=
- "-1">DLL</font> runs in the process space of the server, your
- web server is more susceptible to crashes and hangs caused by
- programming errors.</p>
- <br />
- <hr />
-
- <h2><a name="Where_s_the_source_code_for_Perl">Where's the
- source code for Perl for ISAPI?</a></h2>
-
- <p>The source for Perl for <font size="-1">ISAPI</font> is not
- distributed to the public.</p>
- <br />
- <hr />
-
- <h1><a name="AUTHOR_AND_COPYRIGHT">AUTHOR AND
- COPYRIGHT</a></h1>
-
- <p>This <font size="-1">FAQ</font> was originally assembled and
- maintained by Evangelo Prodromou. <a href=
- "mailto:evangelo@endcontsw.com">evangelo@endcontsw.com.</a> It
- has been revised and updated by Brian Jepson of O'Reilly and
- Associates, and David Grove and David Dmytryshyn of
- ActiveState.</p>
-
- <p>This <font size="-1">FAQ</font> is in the public domain. If
- you use it, however, please ensure that you give credit to the
- original authors.</p>
-
- <p><!-- beginning of leaf footer--></p>
-
- <table width="100%">
- <tr>
- <td bgcolor="000000" width="70" height="31"><a href=
- "http://www.activestate.com/"><img src="ASbutton.gif" alt=
- "ActiveState Home Page" border="0" width="68" height=
- "30" /></a></td>
-
- <td width="10"> </td>
-
- <td valign="middle" bgcolor="#cc0066"><font face=
- "sans-serif" size="+1" color="#ff99cc">
- Win32 FAQ</font></td>
- </tr>
- </table>
- <!-- end of leaf footer-->
- </body>
- </html>
-
-