Overview of FastCGI

The following information describes FastCGI support on the IBM HTTP Server for i.

FastCGI is an open standard extending the Common Gateway Interface (CGI) standard supported by many common web servers today. This standard defines how information is exchanged between a Web server and FastCGI programs isolated in external processes. On IBM i these external processes are provided by a FastCGI Apache module which make external PASE programs (FastCGI programs) available as CGI jobs which can then be utilized by the native ILE environment resulting in faster HTTP request processing.

For up-to-date information about IBM's FastCGI, see
http://www-03.ibm.com/systems/i/software/http/docs/doc.html#PASEFASTCGI

The role of FastCGI programs, as dictated by the FastCGI specification, is to process incoming HTTP request data received from browser clients. For example, the following steps are taken when a user enters data into a Web form and submits the form to a FastCGI-enabled Web server for processing:

  1. The HTTP request is received at the Web server.
  2. The HTTP request's Uniform Resource Identifier (URI) is parsed to identify how the request should be processed.
  3. Based on the URI contained in the HTTP request, action is taken to serve a file or process the request through a script or program. FastCGI related URI's are handled by a FastCGI program depending on what server directives have been specified in the HTTP configuration files.

 

Administrators of the IBM HTTP Server for i control which FastCGI programs the system can run, by specifying certain server directives in the HTTP configuration files. With the proper server directives specified, IBM HTTP server for i can recognize which URI's contained in HTTP requests are for a FastCGI program, commonly called a FastCGI script. Depending on the server directives, the server calls that program on behalf of the client.

The IBM HTTP Server for i only supports FastCGI programs that run in the IBM i PASE environment and conform to the FastCGI standard (http://www.fastcgi.com/drupal/).