Когда Fiddler не находится в Mac OS X или Ubuntu, и если мы не устанавливаем/не используем Wireshark или другие более мощные инструменты, как использовать tcpdump
, чтобы
1) Он может распечатывать
GET /foo/bar HTTP/1.1
[request content in RAW text]
[response content in RAW text]
POST /foo/... HTTP/1.1
это должно быть выполнено tcpdump или с помощью tcpdump в короткой оболочке script или Ruby/Python/Perl script.
2) На самом деле, он может быть аккуратным, если script может выводить HTML, с
GET /foo/bar HTTP/1.1
POST /foo/... HTTP/1.1
на странице, для отображения любого браузера, а затем, нажав на любую из этих строк, он будет расширяться, чтобы показать содержимое RAW, подобное (1) выше. Нажмите еще раз, и он скроет детали. Расширение UI можно выполнить с помощью jQuery или любой JS-библиотеки. script может быть коротким... возможно менее 20 строк? Кто-нибудь знает, как это сделать либо для (1), либо (2)?
Вот два фильтра tcpdump для HTTP GET и HTTP POST:
# tcpdump filter for HTTP GET
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
# tcpdump filter for HTTP POST
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'