So zum Beispiel im Blog oben bei der Animation mit Schneeflocken.
Der IE 6 fordert mehr als 200-mal Bilder der Schneeflocken-GIFs an, obwohl dies nur maximal fünf verschiedene sind. Das ist in der Statuszeile sichtbar.
Folge der Massenabfrage in so schneller Abfolge: der DoS-Serverschutz springt an und liefert dann logischerweise manchmal einen Status 403 an den IE zurück und sperrt den Zugriff für einige Sekunden.
Das ist mir ein Rätsel, warum der IE so spinnt und in so schneller Folge immer wieder anfordert.
Im Server ist sinnvollerweise Cache-Verwaltung mittels Expire und Last-Modified aktiviert.
Leider haben auch Tipps wie IE DHTML image caching bug oder Internet Explorer and AJAX image caching woes nicht geholfen.
Jetzt könnte ja jemand fragen, wieso es nötig sei für den uralten IE 6 noch zu fixen. Ganz einfach, er wird durch Windows XP immer noch vorhanden sein und solange es kein Zwangsupdate bei den Servicepacks auf IE 7 oder IE 8 gibt, wird sich nichts ändern. Ein Anteil von 20–30% ist jedenfalls nicht vernachlässigbar.
Nachtrag:
Der IE 6 hat angeblich ein Problem mit dem HTTP-Header Vary beim Cachen.
Da habe ich erst einmal das Debugging-Tool Fiddler2 eingespannt.
Laut Fiddlers Dokumentation verhält es sich mit Vary wie folgt:
Internet Explorer 6
Internet Explorer 6 will treat a response with a Vary header as completely uncacheable, unless the Vary header contains only the token User-Agent or Accept-Encoding. Hence, a subsequent request will be made unconditionally, resulting in a full re-delivery of the unchanged response.
Der IE 6 vergisst also das Caching, wenn der HTTP-Header Vary mehr als nur User-Agent oder mehr als nur Accept-Encoding enthält!
Seltsamerweise hilft aber auch ein Abschalten des Vary-Headers im Apache mit
BrowserMatch "MSIE 6" no-vary nicht. Der Vary-Header wird vom Apache nicht mehr ausgeliefert, was eine mit Fiddler gut sehen kann, aber der IE 6 greift trotzdem nicht auf den Cache mit den GIFs zu.
Eine Session zeigt folgende Header:
Request:
GET /blog/pics/snow/0.gif HTTP/1.1 Accept: */* Referer: http://www.gwendragon.de/blog/Web/Browser/InternetExplorer/ie6-sendet-zu-viel-requests.html Accept-Language: de Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 2.0.50727) Host: www.gwendragon.de Connection: Keep-Alive
Response:
HTTP/1.1 200 OK Date: Wed, 28 Jan 2009 16:02:24 GMT Server: Apache Last-Modified: Thu, 25 Dec 2008 16:12:48 GMT ETag: "194800f6-30-45ee1478e4000" Accept-Ranges: bytes Content-Length: 48 Cache-Control: max-age=2592000 Expires: Fri, 27 Feb 2009 16:02:24 GMT Connection: close Content-Type: image/gif GIF89a ....
Auch ein Einfügen nur von Vary: User-Agent bringt nichts. Der IE holt immer noch die GIFs wieder neu ab.
Response (2):
HTTP/1.1 200 OK Date: Wed, 28 Jan 2009 16:22:53 GMT Server: Apache Last-Modified: Thu, 25 Dec 2008 16:12:48 GMT ETag: "194800f6-30-45ee1478e4000" Accept-Ranges: bytes Content-Length: 48 Cache-Control: max-age=2592000 Expires: Fri, 27 Feb 2009 16:22:53 GMT Vary: User-Agent Connection: close Content-Type: image/gif GIF89a ....
Es ist einfach zum schreien, dieser IE 6-Bug!
Das Problem ist ja älter und auch schon in der Mailliste von mod_gzip aufgetaucht. Dort ist auch beschrieben, dass die IE nur lokal cachen, wenn Vary: User-Agent gesetzt ist.
Eigentlich sollte es doch gehen, so wie ich es jetzt eingestellt habe.

Kommentare
#1 GwenDragon schrieb am 2.2.2009 13:52 folgendes:
Laut Fehlerlog hat auch der IE 8 hat oft nichts besseres zu tun, als Caching zu ignorieren und im viel zu hohen Maße und viel zu kurzen Abständen immer wieder dieselben Bilddateien hier abzufordern.
Da muss bei DHTML wohl arg nachgebessert werden bei Microsoft.
↑Artikel
Kommentar für Blogeintrag
TrackBack-URL:
http://gwendragon.de/blog/Web/Browser/InternetExplorer/ie6-sendet-zu-viel-requests.html/trackback↑Artikel