Ich möchte die HTTP-Header anzeigen, die von Apache (auf Port 80 abhörend) an Tomcat (auf Port 4080) in einem Linux-Computer gesendet wurden.
Laut Wikipedia ,
Header-Felder sind durch Doppelpunkte getrennte Name-Wert-Paare im Klartext-Format.
Ich habe einige Variationen des folgenden tcpdump
Befehls ausprobiert :
$ sudo tcpdump -lnX dst port 4080 -c 10
11:29:28.605894 IP SOME_IP.33273 > SOME_IP.4080: P 0:49(49) ack 1 win 23 <nop,nop,timestamp 1191760962 509391143>
0x0000: 4500 0065 3a9f 4000 3f06 0084 628a 9ec4 E..e:.@.?...b...
0x0010: 628a 9c97 81f9 0ff0 9e87 eee0 144b 90e1 b............K..
0x0020: 8018 0017 fb43 0000 0101 080a 4708 d442 .....C......G..B
0x0030: 1e5c b127 4845 4144 202f 6461 7070 6572 .\.'HEAD./dapper
0x0040: 5f73 6572 7669 6e67 2f41 644d 6f6e 6b65 _serving/AdMonke
0x0050: 793f y?
Das Ergebnis war immer dasselbe - eine seltsame Mischung aus Kauderwelsch und englischen Wörtern (z HEAD
. B. ).
Wie kann ich die Header in einem für Menschen lesbaren Format anzeigen?
http
rhel6
http-headers
tcpdump
Adam Matan
quelle
quelle
Antworten:
Hier ist ein Einzeiler, den ich mir ausgedacht habe, um HTTP-Header für Anfragen und Antworten anzuzeigen
tcpdump
(was auch für Ihren Fall funktionieren sollte):Es begrenzt das Paket auf 10 KB und kennt nur die Befehle GET, POST und HEAD, aber das sollte in den meisten Fällen ausreichen.
BEARBEITEN : Es wurde modifiziert, um die Puffer bei jedem Schritt zu entfernen und das Reaktionsverhalten zu verbessern. Benötigt jedoch Perl und stdbuf. Verwenden Sie die Originalversion, wenn Sie diese nicht haben: BEARBEITEN : Die Skriptportziele wurden von 80 auf 4080 geändert, um tatsächlich auf Datenverkehr zu warten, der bereits Apache durchlief, anstatt direkten Datenverkehr von außen, der an Port ankommt 80
Einige Erklärungen:
quelle
Sie können etwas erreichen, was Sie möchten, indem Sie
-A
zDenken
-s 0
Sie daran, zu verwenden , um sicherzustellen, dass Sie das gesamte Paket erhalten.Alternativ können Sie
wireshark
die Header auch interaktiv anzeigen.quelle
-A
und-s 0
bekam die gleiche Ausgabe.-X
.tcpdump -s 0 -A dst port 4080
gibtE..e..@.?.$bb...b....:......w........Q.....G..1.b..HEAD /dapper_serving/AdMonkey?ping=1 HTTP/1.0
.-s 0
und nichts danach istHTTP/1.0
, enthält die Anfrage keine HTTP-Header.Versuchen Sie, http://justniffer.sourceforge.net/ zu verwenden. Es ist ein besseres Tool oder Wireshark mit der Option "Follow TCP Flow". Es gibt nur viele bessere Optionen als tcpdump, um Header (Anfragen / Antworten) anzuzeigen.
quelle