Я хотел бы просмотреть заголовки HTTP, отправленные из Apache (прослушивающий порт 80) в Tomcat (через порт 4080) на компьютере с Linux.
Согласно Википедии ,
Поля заголовка - это разделенные двоеточиями пары имя-значение в формате открытого текста.
Я пробовал несколько вариантов следующей tcpdump
команды:
$ 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?
Результат всегда был один и тот же - странная смесь слов на английском и английском (например HEAD
).
Как я могу просмотреть заголовки в удобочитаемом формате?
http
rhel6
http-headers
tcpdump
Адам Матан
источник
источник
Ответы:
Вот одна строка, которую я придумал для отображения заголовков HTTP запросов и ответов, используя
tcpdump
(что должно работать и для вашего случая):Он ограничивает обрезку пакета до 10 Кбайт и знает только команды GET, POST и HEAD, но этого должно быть достаточно в большинстве случаев.
РЕДАКТИРОВАТЬ : изменил его, чтобы избавиться от буферов на каждом этапе, чтобы сделать его более отзывчивым. Однако теперь нужны Perl и stdbuf, поэтому используйте оригинальную версию, если у вас ее нет: EDIT : Изменены целевые значения портов скрипта с 80 на 4080, чтобы фактически прослушивать трафик, уже прошедший через apache, вместо прямого внешнего трафика, поступающего в порт. 80:
Некоторые объяснения:
источник
Вы можете получить что-то близкое к тому, что вы хотите, используя
-A
, например,Не забудьте использовать,
-s 0
чтобы убедиться, что вы получите весь пакет.В качестве альтернативы вы можете использовать
wireshark
для интерактивного просмотра заголовков.источник
-A
и-s 0
получил тот же вывод.-X
.tcpdump -s 0 -A dst port 4080
даетE..e..@.?.$bb...b....:......w........Q.....G..1.b..HEAD /dapper_serving/AdMonkey?ping=1 HTTP/1.0
.-s 0
и после этого ничего неHTTP/1.0
происходит, в запросе нет заголовков HTTP.Попробуйте использовать http://justniffer.sourceforge.net/ Это лучший инструмент или Wireshark с опцией «Follow TCP Flow», есть просто много лучших опций, чем tcpdump, для просмотра заголовков (запросов / ответов)
источник