Saya ingin melihat header HTTP yang dikirim dari Apache (mendengarkan pada port 80) ke Tomcat (pada port 4080) di mesin Linux.
Menurut Wikipedia ,
Field header adalah pasangan nilai-nilai yang dipisahkan oleh usus besar dalam format string teks yang jelas.
Saya sudah mencoba beberapa variasi dari tcpdump
perintah berikut :
$ 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?
Hasilnya selalu sama - campuran aneh kata-kata omong kosong dan bahasa Inggris (misalnya HEAD
).
Bagaimana saya bisa melihat header dalam format yang bisa dibaca manusia?
http
rhel6
http-headers
tcpdump
Adam Matan
sumber
sumber
Jawaban:
Berikut ini adalah satu-baris yang saya buat untuk menampilkan permintaan dan tanggapan menggunakan HTTP header
tcpdump
(yang seharusnya bisa digunakan untuk kasus Anda):Ini membatasi pemotongan paket pada 10Kb dan hanya tahu perintah GET, POST, dan HEAD, tetapi itu sudah cukup di sebagian besar kasus.
EDIT : memodifikasinya untuk menghilangkan buffer di setiap langkah agar lebih responsif. Perlu Perl dan stdbuf sekarang, jadi gunakan versi aslinya jika Anda tidak memilikinya: EDIT : Target port skrip yang diubah dari 80 menjadi 4080, untuk benar-benar mendengarkan lalu lintas yang melewati apache, alih-alih lalu lintas langsung keluar langsung ke port 80:
Beberapa penjelasan:
sumber
Anda dapat mendekati sesuatu yang Anda inginkan dengan menggunakan
-A
, misJangan lupa gunakan
-s 0
untuk memastikan Anda mendapatkan seluruh paket.Atau Anda dapat menggunakan
wireshark
untuk melihat header secara interaktif.sumber
-A
dan-s 0
, mendapat hasil yang sama.-X
.tcpdump -s 0 -A dst port 4080
memberiE..e..@.?.$bb...b....:......w........Q.....G..1.b..HEAD /dapper_serving/AdMonkey?ping=1 HTTP/1.0
.-s 0
dan tidak ada hasilnyaHTTP/1.0
, tidak ada tajuk HTTP dalam permintaan.Cobalah untuk menggunakan http://justniffer.sourceforge.net/ Ini adalah alat yang lebih baik atau Wireshark dengan opsi "Ikuti TCP Flow", hanya ada banyak pilihan yang lebih baik daripada tcpdump untuk melihat header (permintaan / tanggapan)
sumber