Hi, ich will mir ein Tool schreiben, mit dem eine http-Verbindung geloggt werden.
Dazu würde ich gerne die Informationen, die vom Browser an das HTTP-Protokoll geschickt werden abfangen.
Ich habe leider keine Ahnung, wo ich ansetzen soll.
Kann mir jemand ein Tipp zur Vorgehensweise geben?
Oder eine Inspiration?
Oder einen Link?
Vielen Dank
Grundsätzlich schickt der Brwoser die Informationen nicht an das HTTP-Protokoll sondern ÜBER das HTTP-Protokoll. Dabei benutzt er wie jede andere Anwendung einen Socket um über das Netzwerk kommunizieren zu können. Informationen hier abfangen zu können, kannst du nur eventuell über ein Browser Plugin oder du schreibst dir selbst einen Webbrowser. Vielleicht lässt sich der Netzwerktraffic auch mit einer API Funktion mitspeichern, wobei ich glaube, dass das sehr schwierig zu lösen ist, zumindest ist mir keine derartige APi Funktion bekannt.
Weiters könntest du einen network protocol analyzer verwenden. z.B. Wireshark: http://www.wireshark.org/ oder du verwendest Firefox, da es hier ein derartiges Plugin gibt, heißt glaube ich Live Http Headers: https://addons.mozilla.org/de/firefox/addon/3829
mfg dixxi
Hi,
vielen Dank für deine Antwort, ist sehr aufschlussreich.
Weißt du vielleicht wie Wireshark das macht?
Die http-Daten auslesen mein ich.
Wie kriegen die das denn hin?
Viele Grüße
Tut mir furchtbar leid, oba das weiß ich leider auch nicht, sorry. =(
Tut mir furchtbar leid, oba das weiß ich leider auch nicht, sorry. =(
na Jungs, wie wärs denn mit
http://de.wikipedia.org/wiki/Hypertex…
lesen, da steht beschrieben, wie eine Anfrage auszusehen hat.
Also ruckzuck eine Socketverbindung aufbauen und dann
GET /index.html HTTP/1.1
Host: www.example.net
und eine weitere Leerzeile an den Server schicken. Ist der angesprochene Server ein Proxy, dann muss es sich um eine vollständige URL handeln, d.h.
GET http://www.wer-weiss-was.de/ HTTP/1.1
Host: www.example.net
Generell ist die Antwort auf deine Frage einfach. Du programmierst einen Socketserver. Dieser akzeptiert Verbindungen auf einem festen Port und connected sich dann an den Webserver. In diesem Server gibt es dann zwei Threads, einer liest alle Daten vom eingehenden Socket und forwarded diese an den Webserver, der zweite Thread liest alle Daten vom Webserver und forwarded diese zum Client.
Das Ganze nennt sich Proxy und ist auch fertig im Internet zu haben.
Thread 1 Client ----> Proxy ----> Webserver
Thread 2 Client