Daniel: HTTP request abfangen

Ahoi alle,

gibt es ein Tool den HTTP Request den mein Browser absenden zu Catchen und anzusehn? Für Opera, FF oder IE. Ich mach eine Verbindung per fsockopen zu einem Server, soweit klappt das, aber ich bekomm wohl den HTTP-Header nicht richtig hin so das er mir nichts zurück liefert.

MfG

  1. hi,

    gibt es ein Tool den HTTP Request den mein Browser absenden zu Catchen und anzusehn? Für Opera, FF oder IE.

    livehttpheaders für den Firefox zum Beispiel.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Ahoi wahsaga,

      livehttpheaders für den Firefox zum Beispiel.

      Vielen dank, hat mir schonmal sehr weiter geholfen

      MfG

  2. gibt es ein Tool den HTTP Request den mein Browser absenden zu Catchen und anzusehn? Für Opera, FF oder IE. Ich mach eine Verbindung per fsockopen zu einem Server, soweit klappt das, aber ich bekomm wohl den HTTP-Header nicht richtig hin so das er mir nichts zurück liefert.

    Wenn du mal über den HTTP-Rand hinausschauen möchtest, kann ich dir generell Wireshark empfehlen, ein 1A Tool um Netzwerkkommunikation mitzulesen.

    1. Hi!

      Wenn du mal über den HTTP-Rand hinausschauen möchtest, kann ich dir generell Wireshark empfehlen, ein 1A Tool um Netzwerkkommunikation mitzulesen.

      Das wäre natürlich auch noch eine Möglichkeit.
      LiveHTTPHeaders ist ja ein klasse Tool, aber es funktioniert nur mit dem Firefox.
      Ob es für Opera und andere Browser ähnliches gibt, ist mir nicht bekannt.
      Da habe ich jedenfalls noch nie was von gehört.

      Wenn man mit Wireshark arbeiten will, dann gibt es hier Tutorials:
      http://www.nwlab.net/tutorials/ethereal/ethereal-tutorial.html
      http://www.easy-network.de/ethereal.html

      Da steht zwar "Ethereal Tutorial", aber darüber sollte man sich keine Gedanken machen. Wireshark ist sozusagen die Weiterentwicklung von Ethereal.
      Die Tutorials sind also schon richtig.

      Schöner Gruß,
      rob

      1. hi,

        LiveHTTPHeaders ist ja ein klasse Tool, aber es funktioniert nur mit dem Firefox.
        Ob es für Opera und andere Browser ähnliches gibt, ist mir nicht bekannt.

        ieHTTPHeaders ist für den IE ganz nett - funzt aber leider soweit ich weiss noch nicht in der finalen Version des IE7. Aber vielleicht tut sih da ja noch mal was.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Ahoi @all,

    soweit so gut, es funktioniert. Der Request wird sauber abgeschickt und das response entsprechend ausgewertet. Da der HTTP-Request aber zur hälfte dynamisch generiert wird und ja auch was schief gehen könnte geht es jetzt um Fehlerbehandlung.

    Was sind denn mögliche Fehler und wie bekomme ich sie raus?

    int fsockopen ( string $target, int $port [, int $errno [, string $errstr [, double $timeout]]] )

    Steht in der errno der Responsecode?!? also z.B. 200, 400 etc.? was kann da stehen

    Also ich denke mögliche fehler könnten sein:

    • Serverdown
    • angesprochenes Script nicht Verfügbar
    • Authentifizierung fehlgeschlagen
    • angesprochenes Script kann mit übermittelten Daten nichts anfangen.
      Fallen jmd noch mehr Fehler ein?

    MfG

    1. hi,

      Was sind denn mögliche Fehler und wie bekomme ich sie raus?

      int fsockopen ( string $target, int $port [, int $errno [, string $errstr [, double $timeout]]] )

      Steht in der errno der Responsecode?!? also z.B. 200, 400 etc.?

      Nein, natürlich nicht.
      Du hast bisher nur eine Verbindung zu einem Server aufgebaut, bist noch gar nicht auf HTTP-Ebene - also nix mit HTTP Statuscodes.

      was kann da stehen

      Siehe Manual:
      "Wenn der Aufruf der Funktion scheitert, gibt er FALSE / falsch zurück und wenn die optionalen errno und errstr Argumente vorhanden sind, enthalten sie den aktuellen System-Fehler, der beim Aufruf der System-Funktion connect() (Verbindungsaufbau) erscheint bzw. passiert ist."

      Da müsstest du also wohl in deine "System-Doku" schauen, wenn du das wissen willst.

      Aber ich denke, dass ist für so ein Script sowieso nicht relevant - dich interessiert nur, hat der Verbindungsaufbau geklappt, oder nicht.
      Ausgabe von $errstr bspw. könnte dann für einen System-Admin nice to know sein - aber für dich, auf PHP-Ebene, in den meisten Fällen nicht.

      Lediglich Fehler, die in deinem Verantwortungsbereich liegen, wären noch interessant und ggf. behandelbar - wie bspw., wenn du einen Hostnamen anzusprechen versuchst, den es gar nicht gibt. Was dabei herauskommt, lässt sich ja recht einfach testen.

      Also ich denke mögliche fehler könnten sein:

      • Serverdown

      Ergibt einen Timeout.

      • angesprochenes Script nicht Verfügbar

      Interessiert sich fsockopen nicht die Bohne für - noch mal: Zu dem Zeitpunkt bist du noch nicht mal auf der Ebene HTTP.

      • Authentifizierung fehlgeschlagen

      ... s.o.

      • angesprochenes Script kann mit übermittelten Daten nichts anfangen.

      ... s.o.

      Fehler auf HTTP-Ebene bekommst du erst beim Einlesen der Antwort der Gegenstelle mit.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Ahoi wahsaga,

        Also ich denke mögliche fehler könnten sein:

        • Serverdown

        Ergibt einen Timeout.

        und wie komm ich daran? wie finde ich das heraus? in der Docu seh ich dazu nix. Und das der Server ja down ist kann er kein HTTP Response senden.

        MfG

        1. hi,

          Also ich denke mögliche fehler könnten sein:

          • Serverdown

          Ergibt einen Timeout.

          und wie komm ich daran? wie finde ich das heraus?

          Über den Rückgabewert von fopen natürlich - wenn der Server nicht antwortet, kann fsockopen ja wohl kaum erfolgreich eine Verbindung zu ihm aufbauen.

          in der Docu seh ich dazu nix.

          Tipp: Lesen mit _offenen_ Augen.
          Sogar die Zeitspanne, wie lange du zu warten bereit bist, kannst du angeben.

          Und das der Server ja down ist kann er kein HTTP Response senden.

          Muss er ja auch nicht.
          Was hast du an meiner Aussage, dass du dich zu dem Zeitpunkt noch nicht im HTTP-Umfeld bewegst, nicht verstanden?

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. Ahoi wahsaga,

            ich ahb das ganze jetzt so aufgebaut:

            $hostip = @gethostbyname($host);
                  if ($hostip == $host || !$handler=fsockopen ($host, 80, $errornum, $errormsg))
                  {
                    // Server is down or doesn't exist
                    // Etwas Code um Admin zu benachrichtigen
                  }
                  else
                  {
                     // Server is up
                     // ETwas code fürn HTTP-REQUEST
                     fputs($handler, $http_request);
                    if((!$result=fgets($handler)) || ($result!="HTTP/1.1 200 OK\r\n"))
                    {
                      // Request failed
                      // Etwas Code um Admin zu benachrichtigen
                    }
                    else
                    {
                      // Request erfolgreich
                      // noch etwas Code
                    }
                  }

            MfG