Hi Bio,
danke für den Tip, aber ich brauche den HTTP Request als Klartext, tcpdump scheint aber nur die TCP Informationen rauszurücken. Oder muss ich einfach die manpage noch etwas genauer lesen ?
Die Option -s ist dein Freund. Damit kannst du die Anzahl der Bytes hochsetzen, die angezeigt werden. Setze sie auf die Länge, die du für den HTTP-Request vermutest, plus 68 Byte für den TCP-Header. Bei Ethernet ist die maximale Paketgröße irgendwas kleiner 1600 Byte, mit -s 1600 sammelst du also die kompletten Informationen der Übertragung.
Wichtig ist, daß du durch Angabe eines Filters wirklich nur den Datenverkehr zwischen dem Webserver und dem Java-Client beobachtest (Filtern - das ist der Teil über "expression" in der Man-Page). Andernfalls ertrinkst du im Datenstrom. Beschränke die Ausgabe auf den Port 80 des Webservers (oder auf den Port, auf dem er läuft), und falls der Webserver noch anderen Clients was liefert, auch noch auf die Adresse des Javaclients (ohne Portbeschränkung).
Gruss
Marko
P.S.: Ich gestehe nur eine Schwache Grundvorstellung vom OSI-Modell zu haben, und sehr wenig über TCP/IP und HTTP zu wissen.
Das OSI-Modell wurde auch nur in ein oder zwei heutzutage seltenen Netzwerkarchitekturen umgesetzt. TCP/IP ist nicht 100% OSI-konform, weil es Schichten zusammenfaßt, die laut OSI getrennt sind (oder sein müßten). Während OSI sieben Schichten hat, sind es bei TCP/IP eigentlich nur vier (oder fünf?).
HTTP ist die oberste Schicht, und für dich interessant (auf gleichem Level laufen FTP, Telnet, SMTP, POP3 etc...). TCP ist darunter angesiedelt, und läuft auf dem gleichen Level wie auch UDP, ICMP, IGMP etc. IP ist unter TCP angesiedelt und hat (außer den IP-Adressen) eigentlich keine für dich interessanten Aspekte mehr. Ganz zuunterst ist dann die Übertragung über ein Netzwerkmedium (was man vielleicht nochmal in zwei Schichten, analog zu OSI, aufteilen könnte).
- Sven Rautenberg