Geschrieben von Max Maischein
use warnings; use strict;
use Sniffer::HTTP;
my $sniffer = Sniffer::HTTP->new( request => sub { my ($req,$conn) = @_; print $req->uri,"\n" if $req }, response => sub { my ($res,$req,$conn) = @_; print $res->code,"\n" }, ); $sniffer->run();
FireFox hat die "Live HTTP Headers" Erweiterung, die im Prinzip das selbe liefert, aber halt nicht in Perl.
HTTP::Proxy ist im Prinzip genau das selbe, funktioniert aber unbequem, während man entwickelt - man kann nicht browsen, wenn der Proxy abstürzt.
Man kann alle Verbindungen des eigenen Browsers überwachen.
Man kann die Daten mitschneiden, ohne daß das laufende Programm angehalten werden muß (Flash!)
Testen bzw. Mitschneiden von Server-Antworten
Starten:
C:\Projekte\Sniffer-HTTP>perl bin\live-http-headers.pl
Request für http://frankfurt.pm.org/
>>> GET http://frankfurt.pm.org/ HTTP/1.1 Connection: keep-alive ... Host: frankfurt.pm.org User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7 Keep-Alive: 300
Antwort: Redirect
<<< Connection: Keep-Alive Date: Mon, 07 Nov 2005 19:44:17 GMT Location: http://frankfurt.perlmongers.de/ Server: Apache/2.0 Content-Length: 216 Content-Type: text/html; charset=iso-8859-1 Keep-Alive: timeout=15, max=100
Request für <http://frankfurt.perlmongers.de/>
>>> GET http://frankfurt.perlmongers.de/ HTTP/1.1 Connection: keep-alive ... Host: frankfurt.perlmongers.de User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7 Cookie: prefs= Keep-Alive: 300
Antwort: Website
<<< Connection: Keep-Alive Date: Mon, 07 Nov 2005 19:44:18 GMT Transfer-Encoding: chunked Server: Apache/1.3.33 (Unix) Content-Type: text/html; charset=ISO-8859-1 Keep-Alive: timeout=2, max=200 Set-Cookie: prefs=; path=/; expires=Sat, 06-Nov-2010 19:44:18 GMT
Am Arbeitsplatz
Kriminelle Aktivitäten
Testen von Programm-Antworten (wg. Zeitstempel etc.)
Testen von "echter" User-Interaktion (HTTP::Recorder ist da besser, basiert aber auf HTTP::Proxy)
Sniffer::HTTP basiert auf Net::Pcap, und kann daher live-Mitschnitte von der Netzwerkkarte lesen.
Es geht aber auch das Auslesen von Dateien.
Sehr praktisch für das Testen von Server-Code gegen fest definierte Clients, aber anfällig gegen Veränderung des Protokolls bzw. Test- Szenarios.
HTTP::Recorder
HTTP::Request::FromTemplate
Live HTTP Headers (FireFox)
Ethereal
Fragen ?