HTTP调试利器:Fiddler|《软苑》55期Top Tips

你是不是曾经疑惑过你的浏览器和服务器之间是如何交互的?你是不是在软件开发中对一些网络通讯方面的Bug感到疑惑不解?你是不是对那些发送给服务器端的和接受到本地的信息感到好奇?

微软的Fiddler能够帮助你回答以上的问题。Fiddler是一个利用代理机制捕获Http数据流的工具。它可以说是一个Sniffer,但是相比于传统的捕获所有数据流的Sniffer,它更专注于对Http信息的分析,数据也更详实而有针对性。

打开Fiddler后,他会将自己加入到系统的代理服务器设置中,并且将原有的代理设置作为二级代理供自身使用。对于Firefox等不依赖系统代理的浏览器而言,只需使用127.0.0.1:8888这个Fiddler自己创建的代理即可以进行Http流的捕捉。

一旦Fiddler嗅探到Http数据流经自身,该数据包会立即在左侧的Web Sessions列表中列出。点击任何一个数据包后,在右侧就能看到该数据包的详细信息。详细的程度令人乍舌,包含了几乎所有的关于该Http包的信息,包括发送时间、大小、网址、数据内容(所有发送的参数、数据等),并且可以选择不同的浏览方式,例如纯文本、表格、十六进制、RAW格式等等。服务器返回的信息也会在右侧下方显示,同样包含了返回的头信息、时间、数据内容等,同样可以选择不同的浏览方式对数据进行检阅。值得一提的是,对于一些通过诸如GZIP,BZIP2等压缩过的数据包,Fiddler不仅能够显示解压缩后的数据,也能显示解压缩前的十六进制RAW数据,更可以通过设置将每个数据包自动解码,既实用又方便。

不仅如此,作为一个Http调试器,Fiddler支持手工创建数据包进行发送的功能。用户甚至可以通过拖曳之前发送的数据包到Request Builder修改之后重新发送。Fiddler更支持Https流的捕捉与重新发送,功能可谓强大无比。

下面我们结合当前风靡校内的“开心农场”的例子来具体展示一下Fiddler的强大功能。
点击一位好友,Fiddler立即嗅探到你向“xn.hf.fminutes.com”服务器发送了一个数据包,附带的参数是ownerId=23393XXXX,表明需要得到好友校内ID为23393XXXX的农场信息。服务器返回值200,并且在右下角显示返回的信息经过了编码,查看后发现编码格式是GZIP,点击解码后返回的农场数据在Text View窗口中尽收眼底。截取一段如下:

"a":26,……"q":1238076286……

通过分析可知,该好友的代码为26的作物(柚子)播种时间为1238076286(秒数转日期),计算得知将在1238076286+244805(柚子的成熟秒数)=1238321091,也就是3月29日18:04:51成熟。记下之后准备蹲点吧,嘿嘿……

Fiddler有良好的可扩展性。用户可以加入一个Inspector插件对象,使用.NET下的任何语言来编写Fiddler扩展,扩展Request Inspectors和Response Inspectors的功能。

无论你是Web开发人员,或是一名黑客,还是一位对网络数据传输好奇的用户,都可以试试Fiddler这款强大的Http嗅探器+发送器。Fiddler在手,数据难以遁形。

你可能感兴趣的:(fiddler)