Sven Rautenberg: "+AF8" zusätzlich im Request beim IE - was ist da los?

Guten Morgen, Forum!

Ich habe ein etwas kniffliges Problem mit einzelnen Exemplaren des IE - genauer gesagt mit einem einzigen Exemplar. Doch der Reihe nach...

Es existiert eine Webseite, die mit meinen Browsern wunderbar angezeigt wird. Der IE einer Kollegin hingegen macht Probleme. Während bei mir alle Seiten eines Popups ordnungsgemäß geladen werden, fehlen bei ihr bei zwei Seiten die Bilder (es kommt das rote X für "kann nicht geladen werden"), und von der zweiten Seite kommt man nicht auf die erste zurück, sondern erhält 404. Ein Reload zeigt die Seite dann aber, die vorher noch keine Bilder hatte, komplett richtig. (Ich hoffe, ihr könnt euch den Ablauf vorstellen.)

Meine Vermutung, daß der Browser irgendwas falsch vom Server holen will, wurde bestätigt. Zum einen lassen sich die Grafiken alle einzeln prima laden (also unter Angabe der Grafik-URL), und zum anderen zeigt der Server folgende Fehlermeldung im error-log:

[...(Datum)...] [error] [client ...(IP)...] File does not exist:
/...(Pfad zur Datei).../kontakt+AF8-mg+AF8-m.htm

Klar, wenn der Browser diese +AF8 einbaut, findet der Server nichts. Ohne +AF8 würde "kontakt-mg-m.htm" rauskommen, und genau so heißt die Datei ja auch (das gleiche Problem gilt auch für die Bilder). Irgendwie sieht es mir so aus, als ob irgendwas in der URL codiert wird, was absolut nicht codiert werden dürfte.

Kennt jemand das Phänomen? Hat er es lösen können, und wie? Oder ist der IE falsch eingestellt? Könnte ein Proxy auf der Zwischenstrecke Mist bauen (obwohl es auch ohne Proxy nicht funktioniert)?

Für sachdienliche Hinweise bin ich sehr dankbar.

- Sven Rautenberg

  1. Moin Sven,

    Irgendwie sieht es mir so aus, als ob irgendwas in der URL codiert wird, was absolut nicht codiert werden dürfte.

    für mich sieht das auch sehr komisch aus, vor allem da wenn es eine codierung ist,
    ich nicht weiß welche es sein soll. Ein schuß ins blaue, schief gehen kanns immer noch.
    unter einstellungen->erweitert findest du ziemlich weit oben "URL immer als UTF-8 senden".
    versuch mal die einstellung zu ändern. Ich glaub nicht dran, aber den Versuch ist es wert.

    bye eddie

    1. unter einstellungen->erweitert findest du ziemlich weit oben "URL immer als UTF-8 senden".
      versuch mal die einstellung zu ändern. Ich glaub nicht dran, aber den Versuch ist es wert.

      Danke, auch wenn's nichts geholfen hat. :) Diese Einstellung ist bei beiden Browsern identisch (eingeschaltet).

      Hilft der Aspekt, daß alle Bindestriche des Dateinamens gewandelt werden, irgendwie weiter?

      Ich könnte mir vorstellen, mit mod_rewrite einen Workaround hinzufummeln (ersetze "+AF8-" durch "-"), aber das behebt nicht die Ursache.

      Tipps werden weiterhin gern entgegengenommen. :)

      - Sven Rautenberg

      1. Hi,

        Danke, auch wenn's nichts geholfen hat. :) Diese Einstellung ist bei beiden Browsern identisch (eingeschaltet).

        Hilft der Aspekt, daß alle Bindestriche des Dateinamens gewandelt werden, irgendwie weiter?

        Möglicherweise, versuch mal rauszufinden, was das ding abfragt, wenn du die Bindestriche durch
        Unterstriche ersetzt. waere herauszufinden, ober kompletten Blödsinn baut(was bei dem ding
        wohl nicht auszuschließen ist) oder ob er eine unerfindliche kodierung verwendet. D.h. ob er
        1. bei +AF8- bleibt
        2. einen anderen Wert dareinschreibt
        3. Möglicherweise sogar einen Unterstrich anzeigt :-)

        Nächster versuch, isoliere die üblichen Verdächtigen. Sofern du noch Zugang zu 'nem anderen
        Server hast, kopiere das Projekt mal dahin und versuche es noch mal. Sollte das Phänomen
        verschwinden, liegt das Problem in der speziellen Browser/Server-Verbindung.

        Vielleicht sind die Seiten in einem falschen Format gespeichert, und du hast da einen
        Gedankenstrich rein gepackt, die Seite dann als utf-8/unicode gespeichert.

        Du siehst ich stocher im Trüben, aber ich das sind Schritte, die ich unternehmen würde,
        um mich dem Problem zu nähern.

        Ich könnte mir vorstellen, mit mod_rewrite einen Workaround hinzufummeln (ersetze "+AF8-" durch "-"), aber das behebt nicht die Ursache.

        guter Plan, Probleme erschlagen ist besser als drumrumzuarbeiten ;-).

        bye eddie

        1. Ich könnte mir vorstellen, mit mod_rewrite einen Workaround hinzufummeln (ersetze "+AF8-" durch "-"), aber das behebt nicht die Ursache.
          guter Plan, Probleme erschlagen ist besser als drumrumzuarbeiten ;-).

          Ich hab das Ding erstmal mit folgendem mod_rewrite erschlagen:
          RewriteEngine on
          RewriteCond %{HTTP_USER_AGENT} .*MSIE.*
          RewriteRule (.*)+AF8-(.*) $1_$2

          Es ist tatsächlich laut Logfiles so, daß _ausschließlich_ der Internet Explorer betroffen ist, Versionen 5.0, 5.01 und 5.5 kamen vor. Grundsätzlich wurde immer der Unterstrich "_" in "+AF8-" umgewandelt, was ich mit der obigen Ersetzungsregel zurückwandel. ;)

          Das Seltsame ist, daß der IE das Problem nur bei _zwei_ Seiten hat, obwohl alle weiteren Seiten des Popups auch Bildnamen mit Unterstrich verwenden.

          Und wenn ich nach dem ErrorLog gehe, dann tritt dieser Fall auch nur äußerst selten auf.

          Egal - Problem begraben (nicht: behoben), Kunde freut sich.

          Danke!

          - Sven Rautenberg

        2. Hi,

          Nachtrag: +AF8 kann man base64 decodieren dezimalwerte sind: 248,1,124
          248/2 =124!
          irgenwie macht das alles keinen Sinn, oder?

          bye eddie

          1. Hi,

            Tach,

            Nachtrag: +AF8 kann man base64 decodieren dezimalwerte sind: 248,1,124
            248/2 =124!
            irgenwie macht das alles keinen Sinn, oder?

            Doch. Es handelt sich um UTF-7, welches mit dem Base64-Alphabet arbeitet. Die Codierung steht für die Bytefolge \000_, also Nullbyte und Unterstrich.
            Sven sollte den Quelltext der entsprechenden Seiten vielleicht mal mit einem Hexeditor überprüfen.

            Jens

            1. Moin,

              Doch. Es handelt sich um UTF-7, welches mit dem Base64-Alphabet arbeitet. Die Codierung steht für die Bytefolge \000_, also Nullbyte und Unterstrich.
              Sven sollte den Quelltext der entsprechenden Seiten vielleicht mal mit einem Hexeditor überprüfen.

              Sowas hatte ich befürchtet, nur weiß ich nicht wie UTF-7 codiert. Die Tatsache, dass das
              Problem auf 2 Seiten beschränkt ist, spricht evtl. für einen Übertragungsfehler.

              bye eddie

            2. Hi,

              Tach,

              Nachtrag: +AF8 kann man base64 decodieren dezimalwerte sind: 248,1,124
              248/2 =124!
              irgenwie macht das alles keinen Sinn, oder?

              Doch. Es handelt sich um UTF-7, welches mit dem Base64-Alphabet arbeitet. Die Codierung steht für die Bytefolge \000_, also Nullbyte und Unterstrich.
              Sven sollte den Quelltext der entsprechenden Seiten vielleicht mal mit einem Hexeditor überprüfen.

              Jens

              Ed X hat mich nochmal auf deine Antwort aufmerksam gemacht.

              Danke erstmal für den Hinweis. Bei den vielen Codierungsmöglichkeiten (das, was bei SelfHTML unter Content-encoding als Liste verlinkt ist, ist einfach nur noch unübersichtlich :) ) kann man schon mal den Überblick verlieren.

              Wo wird UTF-7 denn eingesetzt? Asiatische Sprachen?

              Ich hatte noch ein weiteres Problem, daß auf zwei anderen Seiten mit diesem - nennen wir ihn mal so - AF8-Browser Javascript-Fehler gemeldet wurden, wo keine Fehler waren. Die Lösung war dann, DOCTYPE und content-encoding zu definieren - danach wollte alles so, wie es sollte (und wie es in meinem Browser auch schon immer wollte).

              Man kann als Grundsatzregel ableiten:
              1.) IMMER den Dokumententyp definieren!
              2.) IMMER den Zeichensatz des Dokuments definieren!
              3.) IMMER Regeln 1 und 2 beachten.
              4.) Regel 3 gilt auch am Wochenende, nachts und an Feiertagen, sowie an allen Werktagen.

              ;)

              - Sven Rautenberg

              1. Hi,

                Wo wird UTF-7 denn eingesetzt? Asiatische Sprachen?

                Ich hab auch erst mal dumm geguckt, der einzige brauchbare text, den google zu diesem
                Thema ausspucken wollte war dann blos die RFC. 2152 wars glaube ich.
                Kurz gesagt, es hat die Aufgabe wie UTF-8, unicode zu maskieren, aber halt nicht in 8bit-chunks,
                sondern in 7-bittigen (E-Mail, Usenet - alles was 8-bit gelegentlich schreddert)
                Dazu wird alles was >127 und einige sonderzeichen in etwa folgender form codiert:
                normaler text ohne sonderzeichen +modiefied base64 codierter unicode- weiter im normalen text

                Man kann als Grundsatzregel ableiten:
                1.) IMMER den Dokumententyp definieren!
                2.) IMMER den Zeichensatz des Dokuments definieren!
                3.) IMMER Regeln 1 und 2 beachten.
                4.) Regel 3 gilt auch am Wochenende, nachts und an Feiertagen, sowie an allen Werktagen.

                mozilla/NN6 macke zB: schreibe in einen JS-String ein Sonderzeichen rein (Umlaut reicht),
                stelle die Browsercodierung auf UTF-8, und sieh, dass du gar nichts sehen wirst.

                bye eddie