One thing I really like about IIS 7.0 is its new modular architecture. What this means is that instead of IIS being a monolithic entity installed by default with only a few features available for optional installation, IIS 7.0 now has more than 40 separate setup components you can choose from and only a small set of these are installed by default. You can now install only IIS features you actually need on your Web server and leave the remaining features uninstalled. The benefits of doing this are fivefold:
The following graphic shows the IIS 7.0 components available for you to install when you add the Web Server (IIS) role to your Windows Server 2008 machine. These components are called modules, and you can add or remove them from the Web server engine, depending on what you need.
Table 11-1 lists the different modules available in each category and provides a short description of what they do.
| Table 11-1 IIS 7.0 modules and their functionality |
| Module name | Description |
| HTTP modules |
| CustomErrorModule | Sends default and configured HTTP error messages when an error status code is set on a response |
| HttpRedirectionModule | Supports configurable redirection for HTTP requests |
| OptionsVerbModule | Provides information about allowed verbs in response to OPTIONS verb requests |
| ProtocolSupportModule | Performs protocol-related actions, such as setting response headers and redirecting headers based on configuration |
| RequestForwarderModule | Forwards requests to external HTTP servers and captures responses |
| TraceVerbModule | Returns request headers in response to TRACE verb requests |
| Security modules |
| AnonymousAuthModule | Performs Anonymous authentication when no other authentication method succeeds |
| BasicAuthModule | Performs Basic authentication |
| CertificateMappingAuthenticationModule | Performs Certificate Mapping authentication using Active Directory |
| DigestAuthModule | Performs Digest authentication |
| IISCertificateMappingAuthenticationModule | Performs Certificate Mapping authentication using IIS certificate configuration |
| RequestFilteringModule | Performs URLScan tasks, such as configuring allowed verbs and file extensions, setting limits, and scanning for bad character sequences |
| UrlAuthorizationModule | Performs URL authorization |
| WindowsAuthModule | Performs NTLM integrated authentication |
| Content mondules |
| CgiModule | Executes CGI processes to build response output. There's also a FastCGI handler that's installed as part of the CGI install. |
| DavFSModule | Sets the handler for Distributed Authoring and Versioning (DAV) requests to the DAV handler |
| DefaultDocumentModule | Attempts to return the default document for requests made to the parent directory |
| DirectoryListingModule | Lists the contents of a directory |
| IsapiModule | Hosts ISAPI DLLs |
| IsapiFilterModule | Supports ISAPI filter DLLs |
| ServerSideIncludeModule | Processes server-side includes code |
| StaticFileModule | Serves static files |
| Compression modules |
| DynamicCompressionModule | Compresses responses, and applies Gzip compression transfer coding to responses |
| StaticCompressionModule | Performs precompression of static content |
| Caching modules |
| FileCacheModule | Provides user-mode caching for files and file handles (required) |
| HTTPCacheModule | Provides kernel-mode and user-mode caching in HTTP.sys (required) |
| SiteCacheModule | Provides user-mode caching of site information |
| TokenCacheModule | Provides user-mode caching of user name and token pairs for modules that produce Windows user principals (required) |
| UriCacheModule | Provides user mode caching of URL information (required) |
| Logging and diagnostics modules |
| CustomLoggingModule | Loads custom logging modules |
| FailedRequestsTracingModule | Supports the Failed Request Tracing feature |
| HttpLoggingModule | Passes information and processing status to HTTP.sys for logging |
| RequestMonitorModule | Tracks requests currently executing in worker processes, and reports information with Runtime Status and Control Application (RSCA) Programming Interface |
| TracingModule | Reports events to Microsoft Event Tracing for Windows (ETW) |
You can install these modules by adding role services and features to the Web Server (IIS) role using Server Manager. (Note that some of these modules cannot be selectively installed or uninstalled unless you uninstall the entire w3svc.) When you add the Web Server (IIS) role to your Windows Server 2008 server, a subset of available role services and features is installed by default (though you can also choose to add role services and features at this time or later).