Ankündigung

Einklappen
Keine Ankündigung bisher.

falsche content-length

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • falsche content-length

    Hallo,

    ich bekomme in regelmäßigen Abständen in Flash -> PHP Requests vom Apache Seiten in denen die Content-length nicht gesetzt ist., Firebug zeigt diese als ? an.

    habt ihr eine Idee warum dies geschieht?

    _best,

    T


  • #2
    Zitat von notyyy Beitrag anzeigen
    in Flash -> PHP Requests vom Apache Seiten
    In, Pfeil, vom ...?

    Beschreibe bitte mal verständlich, wer was wo von wem anfordert.

    Kommentar


    • #3
      Zitat von notyyy Beitrag anzeigen
      Hallo,

      ich bekomme in regelmäßigen Abständen in Flash -> PHP Requests vom Apache Seiten in denen die Content-length nicht gesetzt ist., Firebug zeigt diese als ? an.
      Meintest du:
      Auf der Client-Seite kommen HTTP-Responses an, die serverseitig mit PHP erzeugt wurden und keinen "Content-Length"-Header beinhalten.
      ???

      habt ihr eine Idee warum dies geschieht?
      Weil serverseitig vergessen wurde, den Header zu setzen?

      (Unter der Annahme, dass meine Interpretation deines Posts richtig ist.)
      Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

      Kommentar


      • #4
        Zitat von fireweasel Beitrag anzeigen
        Weil serverseitig vergessen wurde, den Header zu setzen?
        lustig, sollte jedoch der apache nicht ich zuständig für sein

        Kommentar


        • #5
          Content-Length ist bei dynamischen scripten (php, perl, ... ) keine sache des webservers! Sondern des Scripts!

          Wie auch, woher soll der webserver VOR der ersten ausgabe, wenn die header gesendet werden, schon wissen wie viel man mit PHP später ausgeben wird ?
          Ein Script muss diese Header setzen wenn die Gegenseite darauf aufbauen will.

          Wenn also wirklich header auftauchen würde ich an deiner Stelle das ganze mal nicht mit Firebug versuchen zu debuggen sondern wireshark oder ähnlichem und schauen ob da die header auftauchen.
          robo47.net - Blog, Codeschnipsel und mehr
          | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

          Kommentar


          • #6
            interessant ist das verhalten im google Chrome, er zeigt nichts an. mir ist das Problem nun zum ersten mal wirklich aufgefallen, es ist doch eher unüblich, dass die content-length manuell gesetzt wird!?.

            Kommentar


            • #7
              Die Content-Length kann man NUR setzen wenn man vorher weis wie groß der output ist, also dann wenn man z.b. Dateien zum Download anbietet und durch php durchschleift oder ein system zum einsatz kommt wo eh jeglicher content in einem gerendert wird und dann gesendet wird, also in den meisten Fällen wo ein System zum Einsatz kommt wo kein output während dem script sondern erst am Ende erzeugt wird.

              Bei Datei-Downloads ist es mehr als üblich das zu machen schon alleine damit der user weis wie groß sein download sein wird, bei normalen seiten wo man den content als ganzes ausgibt, bricht man sich keinen ab wenn man es machen kann, sind ja im endeffekt nur 1-2 zeilen, wird aber oft einfach vergessen.
              Gerade bei MVC-Systemen mit einem Response-Objekt lässt sich sowas ja sehr einfach automatisieren.
              robo47.net - Blog, Codeschnipsel und mehr
              | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

              Kommentar


              • #8
                Lässt sich auch einfach machen, wenn man Output Buffering benutzt:

                PHP-Code:
                <?php

                ob_start
                ();

                // eigentliches Skript

                $output ob_get_clean();
                header('Content-Length: '.strlen($output));
                echo 
                $output;

                ?>

                Kommentar


                • #9
                  ja, ist mir bewusst. nur wie kann es sein, dass wenn ich dies nicht tue, im u.a. Google Chrome von Flash geladene XML's nicht korrekt ankommen.

                  ?

                  Kommentar


                  • #10
                    mal mit wireshark kombiniert mit debugging im script versucht ?

                    sprich loggen von "fertig" messages am ende des scripts und dann schauen ob das script ... segfaulted oder ähnliches ? sprich halt mal apache und php alles logging auf höchste stufe, logging in dateien aktivieren ... etc und dann mal mit nem cmd-tool ala apache-bench einfach mal massiv viele requests fahren schauen ob du "fehler" reproduzieren kannst, und dann wenn du fehler /probleme findest (du weist ja es haben XX requests stattgefunden, und so viele einträge müssten in deiner log sein) findest einfach mal die wireshark-logs auswerten oder halt noch xdebug mit ins boot holen und profiles erzeugen lassen.

                    Ich mein wir können hier nur raten, von einem kaputten php über kaputtes verhalten im browser zu sonstwas

                    Du musst versuchen es irgendwie schaffen so viel wie möglich informationen dabei sammeln und vor allem schauen wo das problem auftritt, sprich sendet der webserver nicht immer komplett, bricht php ab, verkaggt der browser es aufgrund von caching oder baut flash mist.
                    robo47.net - Blog, Codeschnipsel und mehr
                    | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

                    Kommentar


                    • #11
                      Bist du dir sicher, das Chrome wegen dem Content-Length streikt?
                      Wenn du den header sendest, sollte es keine Grund dazu geben.

                      Checke doch sonst auch mal andere Möglichkeiten, z.B. das XML was du sendest.

                      Kommentar


                      • #12
                        ich bin mir sicher, was jedoch glaube ich auch geholfen hat:
                        <cross-domain-policy>
                        <site-control permitted-cross-domain-policies="all"/>
                        <allow-http-request-headers-from domain="*" headers="*" /> <!-- // dies -->
                        <allow-access-from domain="*" />
                        <allow-access-from domain="*" />
                        </cross-domain-policy>

                        Kommentar

                        Lädt...
                        X