Me gustaría ver los encabezados HTTP enviados desde Apache (escuchando en el puerto 80) a Tomcat (en el puerto 4080) en una máquina Linux.
De acuerdo con Wikipedia ,
Los campos de encabezado son pares de nombre-valor separados por dos puntos en formato de cadena de texto sin cifrar.
He intentado algunas variaciones del siguiente tcpdump
comando:
$ 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?
El resultado fue siempre el mismo: una extraña mezcla de galimatías y palabras en inglés (por ejemplo HEAD
).
¿Cómo puedo ver los encabezados en un formato legible para humanos?
http
rhel6
http-headers
tcpdump
Adam Matan
fuente
fuente
Respuestas:
Aquí hay una frase que se me ocurrió para mostrar los encabezados HTTP de solicitud y respuesta usando
tcpdump
(que también debería funcionar para su caso):Limita los cortes del paquete a 10Kb y solo conoce los comandos GET, POST y HEAD, pero eso debería ser suficiente en la mayoría de los casos.
EDITAR : lo modificó para deshacerse de los búferes en cada paso para que sea más receptivo. Sin embargo, ahora necesita Perl y stdbuf, así que use la versión original si no los tiene: EDITAR : Se cambiaron los objetivos del puerto de script de 80 a 4080, para realmente escuchar el tráfico que ya pasó por Apache, en lugar del tráfico externo directo que llega al puerto 80:
Algunas explicaciones:
fuente
Puede obtener algo cercano a lo que desea mediante
-A
, por ejemplo,Recuerde usar
-s 0
para asegurarse de obtener el paquete completo.Alternativamente, puede usar
wireshark
para ver los encabezados de forma interactiva.fuente
-A
y-s 0
obtuve el mismo resultado.-X
.tcpdump -s 0 -A dst port 4080
daE..e..@.?.$bb...b....:......w........Q.....G..1.b..HEAD /dapper_serving/AdMonkey?ping=1 HTTP/1.0
.-s 0
y no hay nada despuésHTTP/1.0
, no hay encabezados HTTP en la solicitud.Intente usar http://justniffer.sourceforge.net/ Es mejor herramienta o Wireshark con la opción "Seguir TCP Flow", solo hay muchas mejores opciones que tcpdump para ver encabezados (solicitudes / respuestas)
fuente