The default settings in IE mean that a new instance of IE will always try to extract each unique URL when it first occurs. IE does this even if cache headers sent with the resource the last time it was retrieved indicate that the resource is still fresh.
However, IE will send If-Modified-Since and / or If-None-Match when it re-requests a resource that has a copy in the cache. Therefore, the server has the ability to respond using 304 Not Modified , are you sure this is not happening? 304 does not have the body of the subject and therefore is a cheap answer.
Note that IE may make some strange heuristic options if the server cannot send cache control headers using the resource. One such option is that the resource is large enough and caching is not performed.
If you have not already done so, I would recommend that you set some reasonable expiration in the ClientBin folder in IIS Manager (in IIS7, select the ClientBin folder, select "HTTP Response Header", open "Set Common Headers ..", enable the Expire web resource.
source share