HTTP request abfangen
Daniel
- software
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
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
Ahoi wahsaga,
livehttpheaders für den Firefox zum Beispiel.
Vielen dank, hat mir schonmal sehr weiter geholfen
MfG
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.
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
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
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:
MfG
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
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
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
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