It seems that Internet Explorer 7 doesn’t like gzip compression being served up from at least some Web servers.
For a week or more, I’ve been aware that getting to our BLOG using IE7 was impossible. (Bob Richardson first pointed it out to me.) More specifically, one could get to the BLOG, but it would nearly immediately disappear with the “Internet Explorer could not display the webpage” being displayed instead.
I hunted off and on for the past week, using a computer at work we have at the office running the prerelease version of Windows Vista (which is amazing, for the record). I removed pieces of the BLOG, checked for logs that would tell me the problem, but was completely unsuccessful. I could take off every piece of the BLOG, and just display some text via PHP, and the problem would still occur; but, if I saved the HTML to a plain file and served that from my Web server, everything would work fine, which seemed ridiculous, as the HTML delivered was exactly the same.
While we were waiting for a server restart, I explained all this to my co-worker RaviShekhar, and he said, “Have you looked at the headers?” So I took a peek. The header from the BLOG that failed in IE 7 looked (retrieved via Firefox) like this:
Response Headers - http://blog.wilcoxfamily.net/ Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection: close Date: Wed, 25 Oct 2006 20:22:53 GMT Pragma: no-cache Content-Type: text/html; charset=UTF-8 Content-Encoding: gzip Expires: Thu, 19 Nov 1981 08:52:00 GMT Vary: Accept-Encoding Server: Microsoft-IIS/6.0 X-Powered-By: PHP/4.3.11-dev, ASP.NET X-Pingback: http://blog.wilcoxfamily.net/xmlrpc.php 200 OK
And the one from a nearly identical BLOG that worked fine looked like this:
Response Headers - http://robots.wilcoxfamily.net/ Connection: close Date: Wed, 25 Oct 2006 20:23:27 GMTm Content-Type: text/html; charset=UTF-8 Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET, PHP/4.3.11-dev X-Pingback: http://robots.wilcoxfamily.net/xmlrpc.php 200 OK
One obvious difference is the gzip compression. What happens is this: Certain Web servers, to save bandwidth and improve speed, will compress the data that is sent out to the browser. The browser uncompresses the data when it receives it. This allows more information, especially blocks of text, to be sent more quickly.
But what if a browser can’t support the compression? Well, the browser is supposed to communicate with the Web server, and say what it will actually accept, and this is communicated in the request header. So, a browser should only be sent gzip-compressed information if it sends a code to the server that says it accepts gzip.
I don’t yet have the header information that IE7 is sending to the server, but I think it’s sending an “accepts gzip” when either it doesn’t accept it, or there’s something wrong with the uncompression algorithm.
At any rate, turning off the gzip compression on the BLOG lets me visit it using glorious IE 7 (which isn’t bad at all).
To be continued (when I have time to investigate the request headers) …
The latest version of Internet Explorer, just released by Microsoft, would not display the Wilcox Family BLOG for more than a fraction of a second.
After much investigation, and some helpful suggestions, I found the cause of the problem, and changed the BLOG settings to work around it.
It took our blonde site visitors a week to realize that “Internet Explorer could not display the webpage” wasn’t a new BLOG entry; so, no harm done.