How Are ISAPI Server Extensions and Filters Called?
An Internet server extension (ISA) is a program you write to extend the capabilities of the server. An ISA is called when explicitly invoked by a client sending a URL that invokes your DLL. For example,
http://yourserver/wwwquote.dll? asks the server named
yourserver to run the DLL
wwwquote. An HTTP request can also be sent when a user clicks a button on a Web page. This method is often used when a Web page is a form that collects information, which is passed as parameters to the DLL. For example,
http://yourserver/wwwquote.dll?Issues?Method=ByCUSIP invokes the DLL and passes the parameter
Method=ByCUSIP to the function
In contrast, an ISAPI filter is called each time a specified event occurs, no matter what request is being processed by the server. If you included SF_NOTIFY_URL_MAP, the flag for URL mapping, when requesting notifications, your OnURLMap function will be called each time a URL is mapped to your server, regardless of the content of the URL command. A filter can process, examine, and change data on each request to the server.