Fiddler教程

CINDY 0人评论 分类:方法教程
摘要 : 本文详细介绍了fiddler的工作原理、使用方法以及常见配置,是您使用fiddler的必备教程。

现在的移动应用程序几乎都会和网络打交道,所以在分析一个 app 的时候,如果可以抓取出其发出的数据包,将对分析程序的流程和逻辑有极大的帮助。在我们做接口测试的时候,经常需要验证发送的消息是否正确,或者在出现问题的时候,查看手机客户端发送给server端的包内容是否正确,就需要用到抓包工具。对于HTTP包来说,已经有很多种分析的方法了,但是现在越来越多的应用已经使用HTTPS协议来和服务器端交换数据了,这无疑给抓包分析增加了难度。可是 Windows系统下的 Fiddler 可以用来解决这个问题。

fiddler教程


Fiddler的基本介绍

Fiddler的官方网站:  www.fiddler2.com。本站的下载地址是:

fiddler for Mac

fiddler for Linux

fidder for window

Fiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料。Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法. 你越使用Fiddler,就越能帮助你了解HTTP协议。Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。

Fiddler的基本介绍

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler.

Fiddler 如何捕获Firefox的会话

能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Chrome浏览器的代理改为127.0.0.1:8888就可以监听数据了。chrome上通过如下步骤设置代理: 点击: Tools -> Options,  在Options 对话框上点击Advanced tab - > network tab -> setting.

chrome中安装Fiddler插件

推荐你在chrome中使用fiddler chrome插件, 这样你非常方便的使用Fiddler获取chrome中的request 和response。当你安装fiddler后, 就已经装好了fiddler插件, 你需要到chrome中去启用这个插件。

如果遇到chrome浏览器抓不到的情况:实际上fiddler是可以抓chrome的请求的。 由于可能chrome安装了代理管理的插件SwitchySharp,无论选择直接连接还是选择使用代理连接,插件都会屏蔽fiddler的设置。 fiddler会自动给浏览器设置一个代理127.0.0.1 端口8888,并且记忆浏览器的代理设置,所有的请求先走fiddler代理,再走浏览器代理。 如果使用插件,可能会直接屏蔽了fiddler的代理,因此无法监听到请求了。chrome下的解决方法,代理插件选择“使用系统代理设置”选项,fiddler又重新能看到chrome的请求了。 或者不使用插件,不用卸载,chrome很方便禁用一个插件。然后使用浏览器默认的代理设置方式就ok了。
使用代理插件是为了方便切换代理,但是可能会导致fiddler等工具无法使用。正所谓鱼和熊掌不可兼得。

Fiddler如何捕获HTTPS会话

默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler  Tool->Fiddler Options->HTTPS tab。选中checkbox, 弹出如下的对话框,点击"YES"。

Fiddler如何捕获HTTPS会话

点击"Yes" 后,就设置好了

Fiddler的基本界面

 看看Fiddler的基本界面:

Fiddler的基本界面 

Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下图 Fiddler的基本界面

Fiddler的HTTP统计视图

通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化

 

QuickExec命令行的使用

Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。常见得命令有:

  1. help  打开官方的使用页面介绍,所有的命令都会列出来
  2. cls    清屏  (Ctrl+x 也可以清屏)
  3. select  选择会话的命令
  4. ?.png  用来选择png后缀的图片
  5. bpu  截获request

Fiddler教程

Fiddler中设置断点修改Request

Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法: 第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->Before Requests(这种方法会中断所有的会话) 如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled 第二种:  在命令行中输入命令:  bpu www.baidu.com   (这种方法只会中断www.baidu.com) 如何消除命令呢?  在命令行中输入命令 bpu

 Fiddler教程

看个实例,模拟某博客站的登录, 在IE中打开博客园的登录页面,输入错误的用户名和密码,用Fiddler中断会话,修改成正确的用户名密码。这样就能成功登录

1. 用IE 打开博客园的登录界面  http://passport.cnblogs.com/login.aspx
2. 打开Fiddler,  在命令行中输入bpu http://passport.cnblogs.com/login.aspx
3. 输入错误的用户名和密码 点击登录。
4. Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion 如下图所示。
5. 结果是正确地登录了网站了。

Fiddler教程

Fiddler中设置断点修改Response

当然Fiddler中也能修改Response。 第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->After Response  (这种方法会中断所有的会话) 如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled 第二种:  在命令行中输入命令:  bpafter www.baidu.com   (这种方法只会中断www.baidu.com) 如何消除命令呢?  在命令行中输入命令 bpafter,

  Fiddler教程 

具体用法和上节差不多,就不多说了。

Fiddler中创建AutoResponder规则

Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。 看个实例. 1. 打开博客园首页,把博客园的logo图片保存到本地,并且对图片做些修改。 2. 打开Fiddler 找到logo图片的会话, http://static.cnblogs.com/images/logo_2012_lantern_festival.gif,  把这个会话拖到AutoResponer Tab下 3. 选择Enable automatic reaponses 和Unmatched requests passthrough 4. 在下面的Rule Editor 下面选择 Find a file... 选择本地保存的图片.  最后点击Save 保存下。 5.  再用IE博客园首页, 你会看到首页的图片用的是本地的。

Fiddler教程

Fiddler中如何过滤会话

每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话. Fiddler中有过滤的功能, 在右边的Filters tab中,里面有很多选项, 稍微研究下,就知道怎么用。

Fiddler中会话比较功能

选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了 (当然需要你安装WinDiff)

Fiddler中提供的编码小工具

点击Fiddler 工具栏上的TextWizard,  这个工具可以Encode和Decode string. 

Fiddler中查询会话

用快捷键Ctrl+F 打开 Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示

Fiddler教程

Fiddler中保存会话

有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。  保存会话的步骤如下: 选择你想保存的会话,然后点击File->Save->Selected Sessions

Fiddler的script系统

Fiddler最复杂的莫过于script系统了 官方的帮助文档: http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp

首先先安装SyntaxView插件,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now... 如下图

 Fiddler教程

安装成功后Fiddler 就会多了一个Fiddler Script tab, 如下图 

Fiddler教程

在里面我们就可以编写脚本了, 看个实例 让所有cnblogs的会话都显示红色。 把这段脚本放在OnBeforeRequest(oSession: Session) 方法下,并且点击"Save script"

     if (oSession.HostnameIs("www.cnblogs.com")) {            oSession["ui-color"] = "red";        }

这样所有的cnblogs的会话都会显示红色

如何在VS调试网站的时候使用Fiddler

我们在用visual stuido 开发ASP.NET网站的时候也需要用Fiddler来分析HTTP, 默认的时候Fiddler是不能嗅探到localhost的网站。不过只要在localhost后面加个点号,Fiddler就能嗅探到。 例如:原本ASP.NET的地址是 http://localhost:2391/Default.aspx,  加个点号后,变成 http://localhost.:2391/Default.aspx 就可以了。 第二个办法就是在hosts文件中加入  127.0.0.1  localsite 如何你访问http://localsite:端口号。这样Fiddler也能截取到了。

Response 是乱码的

有时候我们看到Response中的HTML是乱码的, 这是因为HTML被压缩了, 我们可以通过两种方法去解压缩。

1. 点击Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"

2. 选中工具栏中的"Decode"。  这样会自动解压缩。

  fiddler教程

转载必须注明来自: Chrome插件 » Fiddler教程

fiddler(for Linux)

fiddler(for Linux)

0 人评论 1034 次人浏览 4.6分 4.6 分
fiddler是一款HTTP协议下的网络抓包工具,本文提供是是Linux系统下的版本For Mono framework。
fiddler(for Mac)

fiddler(for Mac)

0 人评论 1199 次人浏览 4.0分 4.0 分
fiddler是一款HTTP协议下的网络抓包工具,本文提供是是Mac OX系统下的版本。
fiddler (for Windows)

fiddler (for Windows)

0 人评论 2898 次人浏览 4.3分 4.3 分
fiddler是一款HTTP协议下的网络抓包工具,可以用其检测网页和服务器的交互情况,可记录所有客户端和服务器的http和https请求、允许你监视、设置断点、甚至修改输入输出数据。本文提供是是Windows系统下的版本。
Live HTTP Headers

Live HTTP Headers

0 人评论 56518 次人浏览 3.0分 3.0 分
Live HTTP Headers是一款可以监听谷歌浏览器当前会话中所有HTTP Header状态的Chrome插件。
Postman

Postman

21 人评论 1760302 次人浏览 4.0分 4.0 分
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。
评论:(0)

已有 0 位网友发表了一针见血的评论,你还等什么?