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.