User Guide
270 Administering ColdFusion Server
CGI vs. Web Server APIs
The Common Gateway Interface (CGI) was introduced as a standard protocol for
extending the functionality of Web servers with additional applications. Most CGI
applications are simple executables that are launched every time they are requested.
ColdFusion uses a more robust architecture. The ColdFusion Application Server runs
as a multi-threaded system service and handles all of the complicated processing. The
Application Server communicates with the Web server either through a very small CGI
executable referred to as the stub (
cfml.exe) or through a native Web server API.
As Web servers have developed, each vendor has introduced and implemented an
application programming interface (API) for their server. The native Web server APIs
offer additional features and significantly increased performance. Instead of launching
a CGI executable, servers supporting an API communicate directly with the
ColdFusion application server through a DLL.
In addition to introducing server APIs, many server vendors have created document
type mapping, so that individual document extensions can be associated with a
process. This makes it possible to create ColdFusion application pages that are stored
directly in the Web server’s root directory.
ColdFusion supports the following major native Web server APIs:
• Netscape API (NSAPI)
• Internet Server API (ISAPI)
• Website API (WSAPI)
• Apache API
These APIs and document type mapping are supported by these servers:
• Netscape Enterprise and FastTrack Servers
• Microsoft IIS (all versions)
• WebSite (1.1 and Pro)
• Apache
Limitations of CGI
You can use ColdFusion with a server that does not support one of the APIs and
document type mapping. However, you will not be able to use the following features:
• Document type mapping. This eliminates the need for URLs that reference the
ColdFusion executable file (e.g.,
/cgi-shl/cfml.exe?template=).
• Native Web server security. With document type mapping you can put
ColdFusion application pages into the Web server's document directory. This
enables you to use the Web server's security to protect application pages.