fiddle是一款优秀的数据包分析工具软件,如果我没有理解错误,应该是针对http协议。
fiddle的实现原理如右图所示,其充当了client和server端的一个proxy。
当你启动了Fiddler,程序将会把自己作为一个微软互联网服务的系统代理中。你可以通过检查代理设置对话框来验证Fiddler是被正确地截取了web请求。操作是这样的:点击IE设置,工具,局域网设置,最后点击高级。
作为系统代理,所有的来自微软互联网服务(WinInet)的http请求再到达目标Web服务器的之前都会经过Fiddle,同样的,所有的Http响应都会在返回客户端之前流经Fiddler。这样,就能明白Fiddler很多作用了吧!
注意:如果你采用libcurl等库以tcp包方式实现http协议,可能无法直接用fiddle抓吧。因为client的代理端口(tcp的client一般为随机端口,且fiddle的代理端口被占用,tcp无法使用)不一致。
如果你是使用libcurl,可以补充一句
curl_easy_setopt(curl, CURLOPT_PROXY, "127.0.0.1:8888");
即可通过fiddle进行数据包分析。
其他方式实现的http协议请参考此方式解决。
下面会有一篇关于libcurl的博客。