Gostaria de visualizar os cabeçalhos HTTP enviados do Apache (escutando na porta 80) para o Tomcat (na porta 4080) em uma máquina Linux.
Segundo a Wikipedia ,
Os campos do cabeçalho são pares nome-valor separados por dois pontos no formato de sequência de texto não criptografado.
Eu tentei algumas variações do seguinte 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?
O resultado sempre foi o mesmo - uma mistura estranha de palavras sem sentido e inglesas (por exemplo HEAD
).
Como posso visualizar os cabeçalhos em um formato legível por humanos?
http
rhel6
http-headers
tcpdump
Adam Matan
fonte
fonte
Respostas:
Aqui está uma linha que eu criei para exibir cabeçalhos HTTP de solicitação e resposta usando
tcpdump
(o que também deve funcionar no seu caso):Limita o corte de pacotes em 10 KB e apenas conhece os comandos GET, POST e HEAD, mas isso deve ser suficiente na maioria dos casos.
EDIT : modificado para se livrar dos buffers a cada passo para torná-lo mais responsivo. No entanto, agora é necessário o Perl e o stdbuf, portanto, use a versão original se você não os tiver: EDIT : Destinos de porta de script alterados de 80 a 4080, para realmente ouvir o tráfego que já passou pelo apache, em vez de o tráfego externo direto chegar à porta 80:
Algumas explicações:
fonte
Você pode obter algo próximo do que deseja usando
-A
, por exemplo,Lembre-se de usar
-s 0
para garantir que você obtenha o pacote inteiro.Como alternativa, você pode usar
wireshark
para visualizar os cabeçalhos interativamente.fonte
-A
e-s 0
, tenho a mesma saída.-X
.tcpdump -s 0 -A dst port 4080
dáE..e..@.?.$bb...b....:......w........Q.....G..1.b..HEAD /dapper_serving/AdMonkey?ping=1 HTTP/1.0
.-s 0
e não há nada depoisHTTP/1.0
, não há cabeçalhos HTTP na solicitação.Tente usar http://justniffer.sourceforge.net/ É a melhor ferramenta ou o Wireshark com a opção "Follow TCP Flow", existem apenas muitas opções melhores que o tcpdump para ver os cabeçalhos (solicitações / respostas)
fonte