As you learned in Chapter 2, IIS 7.0 introduces a brand-new architecture to the IIS family. In previous versions, the boundaries between what is part of the web server and what is a plug-in or extension were intuitively apparent. With IIS 7.0 and the new modular structure, the boundaries are less obvious.
In this chapter, we take a closer look at how the underlying IIS web server works, and how it is now possible to define for yourself exactly what functionality is provided by the core server, to maximize performance for your specific applications, and to minimize resource overheads.
In the early days of the Web, a web server was nothing more than a single executable. It listened on port 80 for incoming requests, translated the request URI to a local file, and then delivered that file to the client. Figure 11-1 shows this simple web server form.
Figure 11.1. Figure 11-1
The Common Gateway Interface (CGI) is an extension of this simple web server form that allows the web server to pass URI parameters (for example, form field data, query strings, and so on) to external programs, and thus deliver dynamic content produced by the external program or script. Figure 11-2 represents how the CGI interfaces between the simple web server and applications running on the web server host.
Figure 11.2. Figure 11-2
Over time, although the web server implementation has ...