HTTPパケットキャプチャあれこれ
Webサーバやアプリサーバ上でHTTPのトラフィックだけを見たくなった時用のコマンド。
GETリクエストのキャプチャ
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
POSTリクエストのキャプチャ
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
リクエスト、レスポンス、ボディのキャプチャ
sudo tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
参考:
- http://stackoverflow.com/questions/4777042/can-i-use-tcpdump-to-get-http-requests-response-header-and-response-body
- フィルタの意味も書いてある http://www.slideshare.net/twovs/how-to-get-get
ngrepでキャプチャ
インストールはapt-getやyumでどうぞ。
sudo ngrep -W byline -q port 80
お手軽で便利ですね。