Output caching for Web applications is a beautiful thing. The HTTP protocol stack in Windows Server 2003, HTTP.sys, runs in kernel mode and normally requests have to be handed off to a worker process running in user mode. But if you use output caching, HTTP.sys can provide kernel mode response caching so a switch from kernel mode to user mode is not necessary. I’ve heard that that one feature made a noticeable difference for MySpace when they moved to WS2003 (but I don’t have anything to back up that statement).
I didn’t realize that HTTP.sys would not cache the response from a default document.
The HTTP.sys response cache caches any request with the appropriate flag in the request header. This cache is disabled on a per request basis. However, if any of the following apply, HTTP.sys does not cache the request response:
A static file is accessed as a default document (for example, Default.htm exists in the root directory). Accessing the specific file by name (http://example.com/default.htm) causes HTTP.sys to cache the file. Accessing the Web site by requesting the root folder (http://example.com/) results in a non-cached response.