There is one feature coming with IIS 7 (http.sys, as such it is more an OS feature) that I have been waiting for a long time: being able to see what's in the kernel cache! The key to this new supercool feature is the netsh command:
C:\Users\Administrator>netsh http show cachestate ?
Usage: show cachestate [[url=]<string>]
Parameters:
Tag Value url - Fully qualified URL. If unspecified, implies all URLs. The URL could also be a prefix to registered URLs
Remarks: This command lists all resources and their associated properties that are cached in HTTP response cache or displays a single resource and its associated properties.
Examples: show cachestate url=http://www.myhost.com:80/myresource show cachestate
Some information can be obtained in the article New Networking Features in Windows Server "Longhorn" and Windows Vista (you can even flush the cache), and here is how it works if you browse to the default Web site of IIS 7:
C:\Users\Administrator>netsh http show cachestate http://localhost
Snapshot of HTTP response cache:--------------------------------
URL: http://localhost:80/pagerror.gif Status code: 200 HTTP verb: GET Cache policy type: User invalidates Creation time: 2006.3.21:23.30.16:0 Request queue name: DefaultAppPool Headers length: 187 Content length: 2806 Hit count: 1 Force disconnect after serving: FALSE
URL: http://localhost:80/iisstart.htm Status code: 200 HTTP verb: GET Cache policy type: User invalidates Creation time: 2006.3.21:23.30.14:0 Request queue name: DefaultAppPool Headers length: 233 Content length: 774 Hit count: 1 Force disconnect after serving: FALSE
Tracking caching behavior will be so much easier.