ATL Server is an extension of ATL that enables you to write ISAPI applications and bring your C++ skills to the World Wide Web. An ATL Server project consists of an ISAPI DLL that implements the ISAPI entry points for IIS, a set of .srf files that include the HTML to send back to the client, and an application DLL that provides request handlers that fill in the substitutions in the .srf files.
The ATL Server ISAPI implementation provides you with a built-in thread pool for high-performance web applications. ATL Server also provides optional caching mechanisms to further improve performance.
An ATL Server request handler is used to validate the incoming requests and (in concert with the .srf files) generate the output. ATL Server provides the CHttpRequest class that wraps the HTTP request. CHttpRequest provides access to query string parameters, form variables, cookies, and a whole lot more. CHttpResponse wraps the output and gives you the capability to easily generate output to the client in the style of a C++ iostream.
ATL Server can also be used for quick web service wrappers around existing COM code.
In the next chapter, we take a look at how ATL Server does all this under the hood.