Fiddler 教程

Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。

阅读目录

  1. Fiddler的基本介绍
  2. Fiddler的工作原理
  3. 同类的其它工具
  4. Fiddler如何捕获Firefox的会话
  5. Firefox 中使用Fiddler插件
  6. Fiddler如何捕获HTTPS会话
  7. Fiddler的基本界面
  8. Fiddler的统计视图
  9. QuickExec命令行的使用
  10. Fiddler中设置断点修改Request
  11. Fiddler中设置断点修改Response
  12. Fiddler中创建AutoResponder规则
  13. Fiddler中如何过滤会话
  14. Fiddler中会话比较功能
  15. Fiddler中提供的编码小工具
  16. Fiddler中查询会话
  17. Fiddler中保存会话
  18. Fiddler的script系统
  19. 如何在VS调试网站的时候使用Fiddler
  20. Response 是乱码的

Fiddler的基本介绍

Fiddler的官方网站:  www.fiddler2.com

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.

同类的其它工具

同类的工具有: httpwatch, firebug, wireshark

Fiddler 如何捕获Firefox的会话

能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为127.0.0.1:8888就可以监听数据了。

Firefox 上通过如下步骤设置代理

点击: Tools -> Options,  在Options 对话框上点击Advanced tab - > network tab -> setting.

Firefox 中安装Fiddler插件

修改Firefox 中的代理比较麻烦, 不用fiddler的时候还要去掉代理。 麻烦

推荐你在firefox中使用fiddler hook 插件, 这样你非常方便的使用Fiddler获取firefox中的request 和response

当你安装fiddler后, 就已经装好了Fiddler hook插件, 你需要到firefox中去启用这个插件 打开firefox   tools->Add ons -> Extensions 启动 FiddlerHook

Fiddler如何捕获HTTPS会话

默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler  Tool->Fiddler Options->HTTPS tab

选中checkbox, 弹出如下的对话框,点击"YES"

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

Fiddler的基本界面

看看Fiddler的基本界面

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

Fiddler的HTTP统计视图

通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。

选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化

QuickExec命令行的使用

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

常见得命令有

help  打开官方的使用页面介绍,所有的命令都会列出来

cls    清屏  (Ctrl+x 也可以清屏)

select  选择会话的命令

?.png  用来选择png后缀的图片

bpu  截获request

Fiddler中设置断点修改Request

[作者:小坦克]  Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法

第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->Before Requests(这种方法会中断所有的会话)

如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled

第二种:  在命令行中输入命令:  bpu www.baidu.com   (这种方法只会中断www.baidu.com)

如何消除命令呢?  在命令行中输入命令 bpu

看个实例,模拟博客园的登录, 在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中设置断点修改Response

当然Fiddler中也能修改Response

第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->After Response  (这种方法会中断所有的会话)

如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled

第二种:  在命令行中输入命令:  bpafter www.baidu.com   (这种方法只会中断www.baidu.com)

如何消除命令呢?  在命令行中输入命令 bpafter,

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

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中有过滤的功能, 在右边的Filters tab中,里面有很多选项, 稍微研究下,就知道怎么用。

Fiddler中会话比较功能

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

Fiddler中提供的编码小工具

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

Fiddler中查询会话

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

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 Script tab, 如下图

在里面我们就可以编写脚本了, 看个实例 让所有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

抓包工具Fiddler的使用

Fiddler是一款免费且功能强大的数据包抓取软件.它通过代理的方式获取程序http通讯的数据.我们可以利用它来检测网页和服务器的交互情况.下面,我们以http://blog.cersp.com/index/1000176.jspx的网址列表的获取说明一下如何使Fiddler配合火车采集器获取网址列表,以http://bbs.locoy.com的附件下载为例说明一下cookie的获取..

Fiddler下载地址:http://www.fiddler2.com/dl/Fiddler2Setup.exe

一.网址列表的获取

现在我们打开Fiddler,按Ctrl+x,将原来的监控的内容删除,这样便于寻找记录.

我们首先打开个网页http://blog.cersp.com/index/1000176.jspx,这个页面在翻页时我们看不到地址栏里网址有变化,在打开页面查看源码时也看不到有关列表的源码.我们用fiddler监视后,找一个列表中的标题,如"简单与复杂",使用搜索功能,点菜单 Edit里的 Find Sessions.

注意下边的颜色是标记找到的记录的数据,我们点击按钮Find Sessions,程序显示找到了两条有这个字符的记录,我们点击第一个数据,可以看到里边有我们需要的数据,第二条是评论.在左上角,我们可以看到是该页面是使用post方式获取到列表的.

现在我们打开网页中列表的第二页,将原来的记录清空.然后对得到的结果进行对比分析.

可以看到如下结果.默认我们看到的是Header内容,我们看图中红圈,点击Raw,就可以看到发送的数据.

我们点击view in NotePad ,可以在记事本中打开查看发送的具体数据.

可以看到如下内容.需要注意的是,红色部分2+1就是程序里要填写的网址,也就是 http://blog.cersp.com/index/article/getBlogArticlesByUserId.jspx,蓝色部分 Pageno=2是表示第二页.

我们再访问第三页列表,可以得到如下结果 ,可以看出,改变的只是一个页数,所以我们在构造发送的数据时,只需要改变页码即可.其它的参数,一个是用户id,一个是用户文章数目,可以按需要进行修改.

现在我们看一下如果在采集器里进行设置,一个是选post方式,另一个是填写网址,最后一个是将页面部分替换成程序的[分页].并设置要采集的页数.

下边的网址选定区域也可以设置,也可以不设置,和自动获取网址是一样的.我们可以看到最后采集到了需要的网址.

规则下载....其它相关的例子,请查看 POST方式获得网址

二,Cookie的获取

我们以http://bbs.locoy.com/spider-33617-1-1.html 的附件下载为例子,附件只有登陆以后才可以下载,未登陆前,我们采集时会看到提示登陆的内容.

我们打开fiddler,在浏览器里访问一下该页面,就可以看到Fiddler所获取的数据.

注意操作时按以上提示进行点击,方框里的内容就是cookie信息,注意开头的cookie:不用复制.对于大多数的系统来说,直接用所有的cookie就可以,dz的有些特殊,你需要只使用带_sid,_auth部分的cookie即可,也就是图中选中的部分,我们复制这部分内容,粘贴到采网址部分下部的cookie信息的地方.

然后我们再去测试,可以看到内容,并能下载到模块.

抓取cookie到些结束,相关规则 下载

抓包工具Fiddler的使用相关推荐

  1. 抓包工具 - Fiddler(详细介绍)

    原文:抓包工具 - Fiddler(详细介绍) Fiddler的详细介绍 一.Fiddler与其他抓包工具的区别 1.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大.模拟ht ...

  2. 使用抓包工具fiddler和apipost进行接口测试

    一.进行接口测试准备的东西 1.接口测试工具:apipost.jmeter等 2.接口文档,没有接口文档就用接口信息获取工具 3.接口信息收取工具:fiddler抓包工具.浏览器开发者工具(f12)等 ...

  3. 抓包工具fiddler使用与理论的理解

    抓包工具fiddler使用与理论的理解 抓包工具是运行在本地,客户端与服务器之间的一层,可以很好的抓取两者交互的信息 关于http协议 :http是一个简单的请求-响应协议,它通常运行在TCP之上 请 ...

  4. 功能测试与抓包工具Fiddler(http与fiddler)

    文章目录 功能测试与数据库 项目与数据库的关系 功能测试与抓包工具 HTML与HTTP 协议 URL HTML HTTP HTTP请求与响应 基本概念 HTTP请求 HTTP响应 抓包工具 Fiddl ...

  5. 抓包工具Fiddler抓取手机包和修改接口数据

    抓包工具Fiddler抓取手机包和修改接口数据 安装成功界面 点击Tools->Options 弹出该页面 Allow remote-勾选上,意思为允许远程计算机连接,端口随意设置(默认8888 ...

  6. 【解决抓包工具fiddler不抓取360浏览器的数据的问题】

    抓包工具fiddler不抓取360浏览器的数据 fiddler可以抓到Firefox浏览器的包,但是抓不到360浏览器的包. 操作步骤: 打开Fiddler -> 菜单栏 工具(Tools )- ...

  7. api 数据 App 抓包工具 fiddler

    from   :  http://www.heyuan110.com/2015/06/17/App抓包工具fiddler/ App抓包工具fiddler Charles fiddler 抓包 确保安装 ...

  8. 【爬虫】网页抓包工具--Fiddler

    [爬虫]网页抓包工具--Fiddler Fiddler基础知识 Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888, ...

  9. 抓包工具Fiddler使用(主要用于监听APP对外访问请求)

    一.介绍 本人最近在做android开发,有时会遇到线上APP版本显示的数据"不符合预期",查找问题时,特别需要查看一下请求参数是否有问题,但是直接通过线上日志又不是很方便,如果此 ...

  10. 抓包工具Fiddler的使用教程(十二)下:Fiddler抓取HTTPS

    在教程十二(上),我们也了解了HTTPS协议,该教程就和大家分享Fiddler如何抓取HTTPS 抓包工具Fiddler的使用教程(十二):[转载]HTTPS协议 再次回忆一下关键内容: iddler ...

最新文章

  1. 工厂模式 java场景_研磨设计模式之简单工厂模式(场景问题)
  2. armbian docker Chrome_一起学docker06-docker网络
  3. Redis Sentinel 源码:Redis的高可用模型分析
  4. 用Visual C#调用Windows API函数
  5. 华为HCIA认证考试题库数量有多少?HCIA备考时间多久合适?
  6. ThinkPHP高仿蓝奏云网盘系统源码/对接易支付系统程序
  7. 证明一维热传导方程为抛物型方程
  8. 关于服务器托管,你了解多少?
  9. matlab format rat,format rat
  10. 判断API接口是否支持跨域
  11. 为效率而生-开源Mac版Google Authenticator认证客户端GoldenPasspor
  12. 港股通会成资金外流黑洞?伪逻辑不值一驳
  13. celery使用post方法解决方案
  14. 小天才z6官方禁用怎么关闭_我告诉你小天才z6隐藏功能
  15. Hexo系列(四) NexT主题配置
  16. 分类器评估指标——混淆矩阵 ROC AUC KS AR PSI Lift Gain
  17. Android视角,精妙绝伦的回调方法
  18. MySQL查询不同年份母亲节_历年母亲节谷歌doodle有什么不同 google母亲节logo变化史...
  19. android+jiaozi播放器,android视频播放-饺子播放器
  20. C# 鼠标跟随放大镜

热门文章

  1. AI常用框架和工具丨11. 基于TensorFlow(Keras)+Flask部署MNIST手写数字识别至本地web
  2. DataGrid 小结
  3. 获取文件夹下所有文件 _findnext() 崩溃
  4. 《淘宝技术这十年》读书笔记: 分布式时代和中间件
  5. vue面试之“ES6-ES10”
  6. 【招行】软件开发工程师实习生面试
  7. 黑客泄露了微软 37GB 源代码
  8. 金融类软件测试大攻略,带你了解最吃香的金融类软测,附面试题
  9. 天啦噜!在家和爱豆玩剪刀石头布,阿里工程师如何办到?...
  10. python列表转化字典_python的字典、列表与字符串的互相转换