Introduction
  CGI and SSI
    CGI
    <!--#exec-->
  <pike> tag
  Pike script
  Modules
  Parser modules
  Location modules
  Other module types
  Request information object
  Responses
  Library methods
 
CGI and SSI

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 CGI executable support module and SSI with the Main RXML Parser module.

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.

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.

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 <cgi> 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.

SSI or the <cgi> tag can be used together with the <define> tag to create new RXML tags that are handled via CGI scripts.