ISAPI stands for Internet Server Application Programming Interface. There are two types of ISAPI executables: ISAPI filters and ISAPI extensions. ISAPI filters are a bit more complex and are used generally for authentication or for site logging. ISAPI extensions are much more flexible, however, just like CGI. They can be used to access databases, output dynamic data, and perform all the other operations that dynamic technologies ought to do. The creation of ISAPI filters is relatively easy in most programming languages. Microsoft's Visual Basic and Visual C++ both have the capability, as do Borland's Delphi and CBuilder.
The Benefits of ISAP
The most popular question an ISAPI developer receives is: "Why ISAPI?". As the title of this article suggests, ISAPI is generally a forgotten technology (although it is making a surge back to popularity with the new XML/SOAP technologies that rely on ISAPI). As many have realized, CGI isn't very efficient, nor is it very secure. ISAPI was developed to fulfill the deficiencies where CGI fails.
One of the main reasons that ISAPI is more efficient than CGI is because ISAPI remains memory resident. CGI, on the other hand, unloads after it's called. Each time the CGI executable is called, the server must load the CGI process back into memory, whereas ISAPI will already be in memory and can therefore serve the request in a much faster time. For large-scale sites like EBay, ISAPI has been a savior. If EBay were to run on CGI, the burden on their servers would be nearly doubled, resulting in crashing and poor performance, and thus resulting in less business.
Another great benefit of ISAPI is the flexibility of the process. Like CGI executables, the user can use the compiler's embedded functions and the Windows API to access the operating environment of the server. Some great applications of this are, for example, creating an ISAPI remote administration program. ISAPI will allow the application to access the Windows list of functions, kill processes being run by the server, view a screenshot of the hosting screen, and perform countless other administration options, all while providing a secure and robust platform to do so.