<html>
<head>
<title>CGI and SSI</title>
<meta name="keywords" content="">
</head>

<body bgcolor=#113377 text=#000000 vlink=#551a8b alink=#00c0ff link=#0000ee>




















































<table width=100% border=0>
<tr>
  <td valign=top>
  <table width=100% cellpadding=5 cellspacing=0 border=0>
    <tr><td bgcolor="#ffffff" align=center>
       <img border=0 height=40 alt="" src="../../img/logga.gif" width=102>
    </td></tr>
    <tr><td valign=top>
      <img src=internal-roxen-unit width=1 height=3 alt="">
    </td></tr>
    <tr valign=top>
      <td bgcolor="#ffffff">




        <table cellpadding=0 cellspacing=0 border=0>
          
       <!--a1  Introduction manual.tmpl-->
    
            <tr><td><a href="../introduction/index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="../introduction/index.html">Introduction</a></td>
	    </tr>
    
          
       <!--a1  CGI and SSI manual.tmpl-->
    
            <tr><td><a href="index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="index.html"><b>CGI and SSI</b></a></td>
	    </tr>
    
          
	</table>
	
        <table cellpadding=0 cellspacing=0 border=0>
	  
      <!--b1  -->
    
	    <tr><td>&nbsp;&nbsp;<a href="cgi.html"><img border=0 src="../../img/page.gif"></a>&nbsp;</td>
	      <td><a href="cgi.html">CGI</a></td>
	    </tr>
    
	  
      <!--b1  -->
    
	    <tr><td>&nbsp;&nbsp;<a href="ssi.html"><img border=0 src="../../img/page.gif"></a>&nbsp;</td>
	      <td><a href="ssi.html">&lt;!--#exec--&gt;</a></td>
	    </tr>
    
	  
        </table>

        <table cellpadding=0 cellspacing=0 border=0>
          
      <!--c1  -->
    
            <tr><td><a href="../pike-tag/index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="../pike-tag/index.html">&lt;pike&gt; tag</a></td>
	    </tr>
    
          
      <!--c1  -->
    
            <tr><td><a href="../pike-scripts/index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="../pike-scripts/index.html">Pike script</a></td>
	    </tr>
    
          
      <!--c1  -->
    
            <tr><td><a href="../modules/index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="../modules/index.html">Modules</a></td>
	    </tr>
    
          
      <!--c1  -->
    
            <tr><td><a href="../tag-modules/index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="../tag-modules/index.html">Parser modules</a></td>
	    </tr>
    
          
      <!--c1  -->
    
            <tr><td><a href="../location-modules/index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="../location-modules/index.html">Location modules</a></td>
	    </tr>
    
          
      <!--c1  -->
    
            <tr><td><a href="../other-modules/index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="../other-modules/index.html">Other module types</a></td>
	    </tr>
    
          
      <!--c1  -->
    
            <tr><td><a href="../id/index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="../id/index.html">Request information object</a></td>
	    </tr>
    
          
      <!--c1  -->
    
            <tr><td><a href="../responses/index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="../responses/index.html">Responses</a></td>
	    </tr>
    
          
      <!--c1  -->
    
            <tr><td><a href="../library-methods/index.html"><img border=0 src="../../img/chapter.gif"></a>&nbsp;</td>
	      <td><a href="../library-methods/index.html">Library methods</a></td>
	    </tr>
    
          
	</table>

      </td>
    </tr>
    <tr><td height=100%>&nbsp;</td></tr>
  </table>
  </td>
  <td>
    <img src=internal-roxen-unit width=3 height=1 alt="">
  </td>

  <td valign=top>
    <table cellspacing=0 cellpadding=5 width=100% height=100% border=0>
    <tr>
      <td bgcolor="#ffffff">
       <b><font size=+2>CGI and SSI</font></b>

	<p>CGI, common gateway interface, and SSI, server side includes, are two
standards for running scripts by a web server, that work with with
practically any web server. Challenger support CGI with the
<i>CGI executable support</i> module and SSI with the
<i>Main RXML Parser</i> module.

<p>The good thing about CGI programming is that it works with any web
server. Unfortunately this is the only good thing about CGI and SSI.
For each request to a CGI script a program has to be run, something
rather costly of performance. CGI is not particularly easy to program;
many complexities of web application programming must be handled by
the CGI programmer. Nor are the security issues handled, the
programmer has to take care about them herself.

<p>Many of these shortcomings are however handled by languages and
programming environments that use CGI to access the web server. With a
good library CGI programming can become easy for the programmer. It is
however recommended to check how the library, language or environment
handles the security implications of web application programming, and
what the programmer needs to worry about.

<p>Challenger makes it possible to integrate CGI programming with
RXML. It is possible to embed calls to CGI scripts within RXML pages
by using SSI or the <tt>&lt;cgi&gt;</tt> tag. It is also possible for the
RXML parser post process output from CGI scripts. That way a CGI
script can make use of functionality from Challenger modules.

<p>SSI or the <tt>&lt;cgi&gt;</tt> tag can be used together with the
<tt>&lt;define&gt;</tt> tag to create new RXML tags that are handled via CGI
scripts.


      </td>
    </tr>
    </table>
  </td>
</tr>
<tr>
</table>
</body>
</html>
