FastCGI (FCGI)

FastCGI is a protocol for interfacing interactive programs with a web server. FastCGI is a variation on the earlier Common Gateway Interface (CGI); FastCGI's main aim is to reduce the overhead associated with interfacing the web server and CGI programs, allowing a server to handle more web page requests at once.

History

To address the scalability shortcomings of CGI, Open Market developed FastCGI and first introduced it in their webserver product in the mid-1990s. Open Market originally developed FastCGI in part as a competitive response to Netscape's proprietary, in-process API (NSAPI) for developing Web applications.

Although initially developed by Open Market, FastCGI was implemented by a number of other webserver makers. The FastCGI approach, however, competed against other techniques which also aimed to speed and simplify server-subprogram communications, but which didn't follow the CGI paradigm. Apache modules such as mod_perl and mod_php appeared around the same time and seemed to be even better replacements for CGI, allowing closer integration with the core webserver.

Protocol dependencies

Example traffic

Screen shot of an FCGI record from SampleCaptures file: fcgi.pcap.gz

wireshark-fcgi.png

Wireshark

The FCGI dissector is functional and most record types are decoded.

Preference Settings

The FCGI dissector has one preference, to set the port number for FCGI traffic.

Example capture file

A capture of apache sending a single HTTP request to an FCGI application server and getting a response back:

Display Filter

A complete list of FastCGI display filter fields can be found in the display filter reference

Capture Filter

You cannot directly filter FastCGI protocols while capturing. However, if you know the TCP port used (see above), you can filter on that one.

Discussion

FastCGI (last edited 2010-08-13 16:13:54 by TomHughes)