Cymaphore

Now and then

Our world is made of glass

20.04.2010, 21:24 GSM/UMTS Mobilfunk-Provider mit fehlerhaften Proxy-Servern

Die transparenten Proxy-Server der UMTS-Provider sind vorgeblich dazu gedacht, die Internetnutzung über Mobilfunknetze zu beschleunigen. Dazu werden die geladenen Inhalte, vor allem HTML-Seiten und Bilder, von Proxy-Servern der Netzbetreiber nachbearbeitet. Je nach Provider ist das recht schwer zu umgehen, da einige der Provider scheinbar sogar die dafür gedachten HTTP-Statements (Cache-Control) nicht beachten und dennoch zuschlagen.
Diese Vorgehensweise ist nicht nur bedenklich - nirgendwo ist in Wahrheit exakt dokumentiert wie welche Inhalte warum behandelt werden - diese Funktionalität ist noch dazu mit schwerwiegenden Fehlern behaftet.
Beispielsweise werden extern referenzierte CSS und JavaScript-Dateien direkt in das aufrufende Dokument integriert, um die Zahl der Aufrufe zu reduzieren. Ist eine Seite bereits gut optimiert, wie in meinem Fall, führt das aber zu einer deutlichen Verlangsamung der Seite und mehr Traffic, da der dumme Proxy optimierte Strukturen einfach umgeht.
Außerdem ist die Methodik dahinter schwerst Fehlerbehaftet. In extern referenzierten CSS- und JavaScript-Dateien, die über korrekte MIME-Typen verfügen (text/javascript bzw. text/css), spielen Sonderzeichen keine Rolle. Bestimmte Zeichen, die in XML eine besondere Bedeutung besitzen und codiert werden müssen, können im Klartext abgelegt werden, z.B. > oder <.
Nicht so, wenn man diese inline innerhalb von <style>- bzw. <script>-Tags nutzt. In diesem Fall ist es klarerweise notwendig, den Inhalt korrekt zu codieren und die Zeichen durch ihre XML-Entities zu ersetzen, da man anderenfalls das XML-Dokument brechen würde.
Leider ignorieren die Proxy-Server der UMTS-Provider das meines Wissensstands durchgängig und erzeugen so fehlerhafte Dokumente. Während bei HTML-Dokumenten das nicht so tragisch ist, und lediglich die Darstellungsgeschwindigkeit der Seiten weiter reduziert (die meisten Browser parsen die Seite dann im Quirks-Modus und ignorieren somit den Fehler), führt dies bei korrekten XHTML-Seiten mit korrektem MIME-Typ (application/xhtml+xml) dazu, dass die Seite überhaupt nicht mehr angezeigt werden kann, da es sich nicht mehr um ein gültiges XML-Dokument handelt.
Die Zwangs-Proxy der Provider machen also meine Seite nicht nur langsamer und vergrößern die zu übertragende Datenmenge indem sie meine Optimierungen zerstören, sondern sie machen im Extremfall ein gültiges XHTML+XML-Dokument unbrauchbar und somit die Seite nicht darstellbar!
Um das Problem zu umgehen muss man zu einer unschönen Methode greifen, und in seinen Skripten davon ausgehen, dass sich diese jederzeit unmodifiziert in einem XML-Tag befinden können. Um das zu erreichen muss man seine Skripte präventiv in einen speziellen SGML-Abschnitt packen: CDATA (Character Data). Diese Direktive weist den XML-Parser an, alle besonderen Zeichen innerhalb des Abschnitts nicht zu interpretieren. Da das Script aber dennoch gültiges JavaScript (für MIME text/javascript) sein sollte, muss man die SGML-Abschnittsdefinition in einen JavaScript-Kommentar setzen.
Das kann beispielsweise so aussehen:
//<![CDATA[
alert("Pfeilklammern: < > ");
//]]>
Die Scripts dieser Seite sind ebenfalls damit umfasst, siehe: /js/core
Die gleiche Funktionalität ist bei CSS notwendig, wenn zum Beispiel verschachtelte Strukturen betroffen sind:
/*<![CDATA[*/
div > p {color:red;}
/*]]>*/
Ich hoffe ja immer noch, dass die Mobilfunkprovider auf dieses destruktive "Feature" in Zukunft als ganzes verzichten.
Einstweilen kann man diese - unschöne - Methode nutzen, um zu verhindern, dass eigene XHTML-Seiten über GSM/UMTS-Mobilfunknetze, nicht nur auf Android, BlackBerry, iPhone, etc., sondern auch auf Notebooks, usw. wegen XML-Fehlern nicht korrekt dargestellt werden können.
In Deutschland setzen derzeit scheinbar mit O2, Vodafone, T-Mobile und E-Plus alle Netzbetreiber auf diese unschöne Technologie.
In Österreich sind transparente Proxy-Server bei A1/Mobilkom, Orange, Telering und 3 (Drei) im Einsatz.
Über die Schweiz liegen mir derzeit keine Daten vor, es kann allerdings angesichts des allgemeinen Trends davon ausgegangen werden, dass auch hier Web-Dokumente zwangsverstümmelt werden.
[ Link ]

3 Comments

From A1, 28.04.2010, 14:50
Proxys sind noch in anderer Hinsicht gefaehrlich, denn einige loggen brav mit, es wird sogar behauptet es gaebe Honeypots der Behoerden - so kann dann auch schon mal der Liebesbrief am Aushaengbrett einer Behoerde landen, die darin eine codierte ANkuendigung zu Sonstwas meint zu erkennen ;)
[ Link ]
From peter, 02.10.2010, 22:46
hmm - t-mobile filtert freundlicherweise auch alle css kommentare heraus.

Dadurch ist es wohl Essig mit dem CDATA workaround - oder?
[ Link ]
From Fritz, 10.10.2010, 18:01
@peter
... t-mobile ...
und, wie es scheint, die CDATA Kommentare aus JavaScript.
Das scheint der Grund zu sein, warum JavaScript auf dem iPhone funktioniert, wenn ich in einem WLAN bin, per Edge aber nicht.
Ganz böse!
[ Link ]

Write Comment

Name:
eMail:
Comment:
Hint: Comment must have at least 4 characters.
Name is optional.
eMail-Address is optional and will never be published or shared in any way.
Feeds: Atom, RSS, List