Von wem war heir nochmal der "PERL-Browser"
Andreas
- perl
hallo!
Leider finde ich nichts im Archiv, die Suche hängt auch ziemlich zur Zeit, aber wer war das noch, der einen - keinen richtigen Browser, aber halt ein PERL-Script geschrieben hat, welches den gesamten Header-verkehr zwischen Browser und Server anzeigt? Wo finde ich das Teil nochmal, ist nämlich manchmal ganz praktisch. Kann man das Script evtl. bekommen um es nicht immer suchen zu müssen? ;-)
Irgendwann hatte ich das mal gebookmarked, aber den Eintrag finde ich nicht mehr :-(
War jedenfalls von einem der Stammposter hier.
Viele Grüße
Andreas
Hi Andreas,
... aber wer war das noch, der einen - keinen richtigen Browser, aber halt ein PERL-Script geschrieben hat, welches den gesamten Header-verkehr zwischen Browser und Server anzeigt?
das stammt von Michael Schröpl.
Wo finde ich das Teil nochmal, ist nämlich manchmal ganz praktisch.
http://www.schroepl.net/cgi-bin/http_trace.pl
LG Orlando
--
SELF-TREFFEN 2002
http://www.rtbg.de/selftreffen/
http://www.megpalffy.org/temp/penneninhh.html
Hallo!
das stammt von Michael Schröpl.
stimmt
Wo finde ich das Teil nochmal, ist nämlich manchmal ganz praktisch.
genau das meinte ich. Hab gerade folgendes porbiert:
Ich habe ein html-Formular, welche sie Daten per POST übermittelt. Als action habe ich dieses Script eingegeben. Warum stehen jetzt nicht die POST-Daten im Header?
Habe auch das andere Script welches ich im Archiv gefunden hatte probiert: http://www.schroepl.net/cgi-bin/env.pl Da szeht auch nichts davon. Warum?
Viele Grüße
Andreas
Hallo,
genau das meinte ich. Hab gerade folgendes porbiert:
Ich habe ein html-Formular, welche sie Daten per POST
übermittelt. Als action habe ich dieses Script eingegeben.
Warum stehen jetzt nicht die POST-Daten im Header?
Weil die POST-Daten nicht im Header, sondern im Body
uebermittelt werden :) Beispiel:
POST /cgi-bin/post.pl HTTP/1.0
User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; de-AT; rv:1.0.0) Gecko/20020712
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1
Connection: close
Accept-Language: de, en;q=0.50
Cache-Control: max-age=259200
Accept-Encoding: identity,gzip,deflate
Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66
X-Forwarded-For: unknown, 213.7.223.64
Host: www.schroepl.net
Via: 1.0 develop.defunced.de:3128 (Squid/2.4.STABLE7)
Content-Length: 38
field1=value&field2=value&field3=value
Gruesse,
CK
Moin!
Weil die POST-Daten nicht im Header, sondern im Body
uebermittelt werden :) Beispiel:
Oh! Das heißt GET und POST unterscheiden sich hauptsächlich dadurch, das nbei Post ein Body übermittelt wird, bei GET nicht? Wußte ich nicht. Ich dachte das wäre alles im Header, nur an anderer Stelle, einmal direkt im Request und einmal "woanders" ;-)
Kennst Du zufällig ein Script welches mit das komplett anzeigt? Hab jetzt keine große Lust ein eigenes zu schreiben ;-)
Außerdem kenne ich in PHP keine Möglichkeit wie das geht! Ich kann zwar mit fsockopen()... selbst eine POST_Verindung herstellen, aber wie ich einfach den kompletten Header und Body eines HTTP-Requests ausgebe weiß ich nicht. Wahrscheinlich ist das auch gar nicht so schwer, ich komme ja recht einfach an alle möglichen Umgebungsvariablen, auch alle POST-Variablen, aber das ist es nicht was ich will. Kann man den Request nicht einfach mal in seiner Rohfassung anzeigen? Komplett mit body? Das was ich in PHP habe ist immer schon "bearbeitet" bzw. auf 1000 Variablen verteilt. Nur den ganz gewöhnlichen Request, geht das nicht?
Grüße
Andreas
Moin!
Weil die POST-Daten nicht im Header, sondern im Body
uebermittelt werden :) Beispiel:
Oh! Das heißt GET und POST unterscheiden sich hauptsächlich dadurch, das nbei Post ein Body übermittelt wird, bei GET nicht? Wußte ich nicht. Ich dachte das wäre alles im Header, nur an anderer Stelle, einmal direkt im Request und einmal "woanders" ;-)
Kennst Du zufällig ein Script welches mit das komplett anzeigt? Hab jetzt keine große Lust ein eigenes zu schreiben ;-)
Außerdem kenne ich in PHP keine Möglichkeit wie das geht! Ich kann zwar mit fsockopen()... selbst eine POST_Verindung herstellen, aber wie ich einfach den kompletten Header und Body eines HTTP-Requests ausgebe weiß ich nicht. Wahrscheinlich ist das auch gar nicht so schwer, ich komme ja recht einfach an alle möglichen Umgebungsvariablen, auch alle POST-Variablen, aber das ist es nicht was ich will. Kann man den Request nicht einfach mal in seiner Rohfassung anzeigen? Komplett mit body? Das was ich in PHP habe ist immer schon "bearbeitet" bzw. auf 1000 Variablen verteilt. Nur den ganz gewöhnlichen Request, geht das nicht?
Grüße
Andreas
Hallo nochmal!
sorry, das letzte Posting war aus Versehen;-)
Ich will lediglich den POST Header und Body anzeigen, den der Browser abgesendet hat, ich weiß das ich alle Angaben in allen möglichen Umgebungsvariablen stehen habe, aber es muß doch anders möglich sein einfach den kompletten Request auszugeben, oder? Mit getallheaders() soll das ja gehen, aber leider nur in der Modul-Version. Gibt es sonst noch eine Möglichkeit?
Oder kennt jemand ein Script welches die Umgebungsvariablen wieder zurück in den Header "verwandelt"?
Oder "wenigstens" ein PERL-Script welches das macht, wahrscheinlich geht das da mal wieder viel einfacher?
Viele Grüße
Andreas
Moin,
Ich will lediglich den POST Header und Body anzeigen, den der Browser abgesendet hat
Wenn es dir nur darum geht, ist der Netzwerksniffer deiner Wahl sicherlich das geeigneteste Werkzeug. Ethereal zum Beispiel ist recht einfach und gibt es auch für Windows[1][2].
[1] Ethereal gibt es hier: http://www.ethereal.com/distribution/win32/
[2] zusätzlich noch winpcap:
http://netgroup-serv.polito.it/winpcap/install/default.htm
--
Henryk Plötz
Grüße aus Berlin
Hi Andreas,
Oh! Das heißt GET und POST unterscheiden sich hauptsächlich dadurch, das
nbei Post ein Body übermittelt wird, bei GET nicht? Wußte ich nicht. Ich
dachte das wäre alles im Header, nur an anderer Stelle, einmal direkt im
Request und einmal "woanders" ;-)
Eben. ;-)
Kennst Du zufällig ein Script welches mit das komplett anzeigt? Hab jetzt
keine große Lust ein eigenes zu schreiben ;-)
Was genau tut mein Trace nicht zu Deiner Zufriedenheit?
Außerdem kenne ich in PHP keine Möglichkeit wie das geht! Ich kann
zwar mit fsockopen()... selbst eine POST_Verindung herstellen, aber
wie ich einfach den kompletten Header und Body eines HTTP-Requests
ausgebe weiß ich nicht.
Du schreibst zuerst die Header, dann eine Leerzeile und zuletzt den Body
in die socket - das war's. Auf der anderen Seite liest das jemand, trennt
Header und Body an der ersten Leerzeile voneinander, und fertig.
Kann man den Request nicht einfach mal in seiner Rohfassung anzeigen?
Genau das versuche ich doch ...
Viele Grüße
Michael
Hi Michael!
Kennst Du zufällig ein Script welches mit das komplett anzeigt? Hab jetzt
keine große Lust ein eigenes zu schreiben ;-)
Was genau tut mein Trace nicht zu Deiner Zufriedenheit?
es zeigt mir nicht den Body-Bereich des POST Requests an, den mein Browser dahin sendet! Ich habe ein Formular und sende daraus die Daten per POST an Dein Script. Da steht alles außer den POST-Daten.
OK, das könnte ich jetzt selbst einfügen und an den "echten" server schicken, aber im prinzip ging es mir gerade darum zu sehen wie genau der POST Request mit all seinen Daten aufgebaut ist, da ich diesen serverseitig simulieren wollte. Dafür habe ich halt ein Script gesucht, welches mit ALLES anzeigt, so wie es kommt. Verstehe nur nicht das das so ein Problem ist, auch in PHP ist das in der CGI-Version zwar nicht unmöglich, aber man darf dfas ganze wieder aus allen möglichen Umgebungs-Variablen/arrays auseinander friemeln!
Außerdem kenne ich in PHP keine Möglichkeit wie das geht! Ich kann
zwar mit fsockopen()... selbst eine POST_Verindung herstellen, aber
wie ich einfach den kompletten Header und Body eines HTTP-Requests
ausgebe weiß ich nicht.
Du schreibst zuerst die Header, dann eine Leerzeile und zuletzt den Body
in die socket - das war's. Auf der anderen Seite liest das jemand, trennt
Header und Body an der ersten Leerzeile voneinander, und fertig.
Aber warum macht Dein Script das nicht? Das Zeigt die POST-Daten schlichtweg nicht an. War das Absicht da Du nur den Header selbst haben willst? Und wie machst Du das grob, gibt es dafür eien PERL-Funktion bzw. stteht der Header irgendwie direkt zur Verfügung, oder hast Du das auch "von Hand" auseinander gefriemelt?
Kann man den Request nicht einfach mal in seiner Rohfassung anzeigen?
Genau das versuche ich doch ...
Aber was ist mit POST-Daten? Gehören Die für Dich nicht zum Requestm oder liegt der Fehler gar bei mir?
So hab ichs probiert, mit GET sind Daten da, so nicht.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form method="POST" action="http://www.schroepl.net/cgi-bin/http_trace.pl">
<input type="text" name="testfield">
<input type="submit" name="Abschicken" value="Abschicken">
</form>
</body>
</html>
Verstehe das jetzt bitte nicht falsch, das ist keine Kritik, nur habe ich andere/weitere Anforderungen ;-)
Sonst ist es perfekt zum testen!
Grüße
Andreas
Hu Andreas,
Was genau tut mein Trace nicht zu Deiner Zufriedenheit?
es zeigt mir nicht den Body-Bereich des POST Requests an, den mein
Browser dahin sendet! Ich habe ein Formular und sende daraus die Daten
per POST an Dein Script. Da steht alles außer den POST-Daten.
In der Tat mag mein Skript nicht via POST aufgerufen werden - auf
diese Idee bin ich einfach nicht gekommen.
Aber Du kannst durchaus Deinen Ziel-URL mit meinem Skript via POST
ansprechen und ihm dennoch Parameter übergeben: Hänge sie an den
Query-String des zu tracenden URL dran, so wie Du das mit GET auch
tun würdest! Mein Skript erkennt, daß Du POST als Methode ausgewählt
hast und sendet diese Daten im Body an Deine Ziel-Adresse.
Das erspart mir, einen separaten Eingabe-Bereich für diesen Body im
Formular anzubieten. (Es limitiert allerdings auch die Body-Daten auf
solche, die Du meinem Skript via Query-String übergeben kannst ...)
Viele Grüße
Michael
Moin,
Außerdem kenne ich in PHP keine Möglichkeit wie das geht! Ich kann zwar mit fsockopen()... selbst eine POST_Verindung herstellen, aber wie ich einfach den kompletten Header und Body eines HTTP-Requests ausgebe weiß ich nicht.
Ich fürchte das geht in PHP nicht. Wenn der PHP-Interpreter anfängt das Skript auszuführen, ist bereits alles zu spät und der gesamte Request eingelesen. Normale CGI-Skripte würden die POST-Header im Environment kriegen und den Body auf der Standardeingabe. Du hast nun entweder die Möglichkeit so ein CGI-Skript zu nehmen, etwa mit Perl oder wenn es unbedingt PHP sein soll, kannst du auch einen Webserver in PHP schreiben, der dann einfach auf einem anderen Port lauscht. Der kriegt dann Header und Body auf seiner Eingabe und kann damit anstellen was er will. Ich glaube ich habe den Code dazu schonmal im Forum gepostet.
--
Henryk Plötz
Grüße aus Berlin
Hi Andreas,
ein PERL-Script geschrieben hat, welches den gesamten
Header-verkehr zwischen Browser und Server anzeigt?
Wo finde ich das Teil nochmal
nachdem mich das gestern ein Kollege im Büro auch
gefragt hat ;-), habe ich wenigstens mal einen Link
dazu auf die Startseite meiner Homepage gesetzt.
Eine eigene Projektseite mit Google-Eintrag oder gar
ein Download-Paket gibt's halt noch nicht ... aber
statt dessen könnte man das Teil vielleicht in
http://aktuell.de.selfhtml.org/sonst/
integrieren - oder wenigstens dort einen Link darauf
setzen?
Viele Grüße
Michael