A while back, I wrote an article about Gmail’s cache complaint message. In order to believe the Google claim, you’d have to believe that IE’s cache is implemented in such a way that it doesn’t know how to clear space automatically when it gets full. Every cache I know of does that, so it seems pretty hard to believe. I thought it might be voodoo. Since I never heard an answer, I finally stopped being lazy and investigated myself.
Turns out that Google’s right. IE6 really is that lame.
To test this, I first started up Fiddler, a great little utility for tracing HTTP requests. Then, I navigated to my favorite brother-in-law’s website (Don’s Drug), and loaded two pages. Here is the trace:
www.donsdrugs.com
Page1:
/ 200 1027 bytes
/styles-site.css 200 4075 bytes
/c/header-dd.jpg 200 26774 bytes
Page2:
/archives/cat_news.html 200 868 bytes
/styles-site.css 200 4075 bytes
/c/header-dd.jpg 200 26774 bytes
Ack – see that? The second two pages got reloaded with HTTP 200 responses! Those were static and should have been cached, or at the very least we should have seen “304 not modified” responses from the server (which saves us from having to redownload all the bytes).
Then I cleared the cache and loaded another two pages (my cache was set to the max size of 32GB, so it took about 5 minutes to empty):
Page1:
/archives/cat_drugs.html 200 813 bytes
/styles-site.css 200 4075 bytes
/c/header-dd.jpg 200 26774 bytes
Page2:
/c/about.html 200 546 bytes
Aha! So this time the static content that we had previously fetched (styles-site.css and header-dd.jpg) were now fetched from the cache. So, Google’s right. Web browsing will really suck if you leave your IE6 cache full for too long.
What does this mean? Well, it means that if your cache is full, and you are browsing a site like “CNN”, every page has to keep downloading the content which is common to all CNN pages. And, this can be the bulk of what you download. You could easily see 2-3x faster web browsing by clearing your cache manually.
The IE7 team has been doing a lot around caching and performance, so I bet this is fixed. I’m going to hit them up to make sure.