Photos:

China pictures processed

 
0%
 
2008.06.12 @13:27 

DEFLATE problem with IE6

DEFLATE problem with IE6

Since a while now I had some troubles with my IE6 at home and sometimes elsewhere (compared to IE7 at work) on some of my simple applications.

Why simple ? Because they are not complex in any kind or heavy and they are very light as html pages.

For example, this blog you're reading is heavier on the frontend (complex skin, javascript and lots of stuff to load) but the backend is very very light since I didnt care enough to build something shiny for my own usage.

And under IE6 from times to times (completely randomly) IE didnt want to follow links but as it is only on my backend I didnt really look into it for a while.

Pardon me ?

Yes you have read correctly, even if internet is all about links - isnt it  ? -, when I clicked on a simple GET link, IE6 starts to download and stops on a white page, even the url in the navigation bar url has not changed !

When sniffing the traffic, one can see that the request and response have been correctly done and still IE6 does not want to render the page.

If you read this article and you have the same kind of trouble here is why and how to fix this.

Why ?

Sniffing the packets gave me the opportunity to see that my new webserver where others developers are working on was now using the Apache module mod_deflate.

If you have looked on internet you may have noticed that IE6 and below have well know problems with big javascript being served and cached.

Why specially javascript files in these reports ? To be honest this seemed a bit weird but I havent found any other reports apart the classic double compression problems which was not the case here.

After a lot of trials and errors I've narrowed down that the problems are happening randomly when :

  • the OutputFilter DEFLATE is active (beware that even if you activate it only with "AddOutputFilterByType DEFLATE type" this will have weird results since Apache does not always know which content-type is the page you're working on).
  • possibly the usage of sessions or custom headers in PHP may force to flush the cache with some Cache-Control headers
  • and the fun thing is ...  when the page you processed is tiny, less than 10k. It doesnt seem to appear when the page is bigger.

After fixing the problem I actually found this report from microsoft.

I dont know if this is the same problem but this looks pretty close except that I definitely had the troubles on at least two different IE6 and both were SP2 and patched with the latest updates... so no this does not seem to be fixed.

The solution

Since your users may not want to all update to firefox or IE7 you may have to :

  1. Either disable totally the output filter deflate on your site since I dont think this is related to PHP, PHP here is correctly sending the headers which are totally valid. It's IE6 the problem with gzip encoded data.
  2. Or more cleverly conditonnally disable it only for IE with : BrowserMatch "MSIE 6" no-gzip dont-vary so only IE6 will not have gziped content.

 

1 Comment
  1. Boris Reitman said:

    Thursday, June 18, 2009 at 03:09

    Thank you.

Post a Comment
Comments have been deactivated thanx to screwers.