Ein Rezept gegen Mobile-Proxy-Caches

Es gibt Probleme, die einen als Programmierer zur Weißglut treiben können. Dazu gehört, dass ein und derselbe Vorgang einen völlig unterschiedlichen Ausgang haben, je nachdem, ob sie über eine Wifi-Verbindung oder eine UMTS-Verbindung ablaufen. In meinem Fall geht es um eine iPad-App, die eine HTML-Seite abruft und unter anderem HTML-Kommentare (<!– Test –>) auswerten soll. Über Wifi läuft dies problemlos, über UMTS (3G) kurioserweise nicht. Die Auswertung ergab, dass beim Abruf der Seite völlig unterschiedliche HTML-Dateien zurückkamen, obwohl ein und dieselbe URL aufgerufen wird.

Des Rätsels Lösung fand sich erst nach intensiver Webrecherche: Die Mobilfunkbetreiber setzen offenbar so genannte „Mobile Proxy Caches“ ein. Dabei handelt es sich um Proxy-Server, die beim Abruf von HTML-Seiten den Code optimieren, in dem sie vermeintlich unnötige Zeilen und Umbrüche entfernen. Grundsätzlich ist das für den Mobilfunkkunden eine feine Sache, da auf diese Weise der Datentransfer etwas beschleunigt wird und etwaige Traffic-Begrenzungen nicht überstrapaziert werden. Unter diesen unnötigen Angaben befanden sich aber ärgerlicherweise auch jene Code-Zeilen, die meine App dringend benötigt.

Nun gibt es zwei Lösungen, dieses Problem zu beheben: Die eine nennt sich XML und ist ohnehin eleganter, als irgendwelche HTML-Seiten auszulesen, die gar nicht für solche Zwecke gedacht sind. In meinem Fall ist eine Lösung jedoch ad-hoc gefragt – es muss also erstmal der bisherige Weg eingeschlagen werden.

Die andere Lösung habe ich hier gefunden: Eine kleine Ergänzung im Request-Header macht dem mobilen Spuk ein Ende. Mit cache-control:no-transform wird jegliche Veränderung der HTML-Seite unterbunden. Ziemlich simpel, aber der Weg dorthin war steinig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.