Erste Elf. Gut aufgestellt.
Die Erste Elf ist eine Agentur für digitale 
Projekte inmitten eines erlesenen Netzwerks.

Gemeinsam blicken wir auf viele Jahre Erfahrung in den Bereichen Konzept, Design, Beratung und Programmierung zurück …
Showreel

IE6, Flash und SSL

Flash auf IE und HTTP-Header

Der Versuch von Flash aus per SSL auf eine dynamisch erzeugte XML-Datei zuzugreifen, kann unter IE6 zu unvorhergesehenen Problemen führen. Kollege Mach und ich hatten heute genau damit Schwierigkeiten. Wie sich herausgestellt hat, kommt Flash unter IE6 nicht mit den HTTP-Headern

Pragma: no-cache
Cache-control: no-cache,max-age=0,must-revalidate

zurecht, die ein Caching der dynamisch erzeugten XML-Datei verhindern sollen. Das Problem tritt aber in der Tat nur auf, wenn der Zugriff per SSL erfolgt. Der Bug ist Adobe bekannt und wird in dieser Technote dokumentiert.

Um auf einem PHP-System die Header zu unterbinden, die bereits von PHP selbst gesetzt werden, habe ich sie folgendermassen überschrieben:

header('Cache-Control: ',true);
header('Pragma: ', true);
header("Expires: Thu, 01 Jan 1970 01:00:00 GMT", true); 


Der Expires-Header soll dazu dienen, caching möglichst trotzdem zu verhindern. Anfangs hatte ich auch einen zusätzlichen Last-Modified Header angegeben, der bewirkt aber beim Firefox direkt mal, dass auf jeden Fall gecacht wird, sofern er in der Vergangenheit liegt.

Ein weiteres Problem, das uns in dem Zusammenhang auffiel, ist, dass Flash auf IE6 bei Requests an einen Server, der gzip-komprimiert  ausliefert, auch gerne mal die Antwort nicht parsen kann. Dies scheint unabhängig davon zu sein, ob die Kommunikation über SSL läuft oder nicht. Um uns das Leben einfacher zu machen, haben wir für alle von Flash angefragten Dateien generell auf GZIP-Komprimierung verzichtet, ohne die Probleme systematisch auszuloten.

26.08.2009 14:02 von Holger Knauer

Kommentare

David am 26.08.2009:
Ist dieses Problem nicht schon einfach mit einem an die angeforderte XML-Datei als GET-Variable angehängten Timestamp zu lösen? Oder geht es dir hier um mehr als nur Caching zu verhindern?
Holger am 26.08.2009:
Klar, damit könnte man das Caching auf jeden Fall verhindern.
Im Allgemeinen sollte aber der Server entscheiden, ob gecacht wird oder nicht, der weiß schließlich im Gegensatz zum Client wo die Daten herkommen und damit, ob sie sich cachen lassen oder nicht.
Und wenn der Server für sich selber sorgt, hat man eine Fehlerquelle weniger, falls mal ein anderer Client auf dieselben Daten zugreifen soll.

Einen Kommentar schreiben

*
*
Bitte rechnen Sie 1 plus 7.*
//
IE6, Flash und SSL - Erste Elf. Gut aufgestellt.