一、什么是fiddler?
- Fiddler是最好用最强大的web调试工具之一,它能记录所有客户端和服务器的http和HTTPS请求,允许你监视,设断点,甚至修改输入输出数据。Fiddler是以代理web服务器的方式进行工作的,它使用的代理地址是127.0.0.1,端口8888
- 注意:当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。
- 1、安装fiddler:因为fiddler是免费的所以直接官网下载https://www.telerik.com/fiddler
![](https://img-blog.csdnimg.cn/img_convert/aabd5c9416e810c37c7493e8c07fbf36.png)
- 2、安装fiddler,没啥需要注意的直接双击安装包
- 3、安装完成,点击打开
![](https://img-blog.csdnimg.cn/img_convert/cf5177a0860783238964133f441ce2e6.png)
- 4、了解基本协议
- HTTP协议之响应:在接收和解释请求消息后,服务器返回一个HTTP响应消息。
- HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
- 1xx:指示信息--表示请求已接收,继续处理
- 2xx:成功--表示请求已被成功接收、理解、接受
- 3xx:重定向--要完成请求必须进行更进一步的操作
- 4xx:客户端错误--请求有语法错误或请求无法实现
- 5xx:服务器端错误--服务器未能实现合法的请求
- 常见状态代码、状态描述、说明:
- 200 OK //客户端请求成功
- 400 Bad Request //客户端请求有语法错误,不能被服务器所理解
- 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
- 403 Forbidden //服务器收到请求,但是拒绝提供服务
- 404 Not Found //请求资源不存在,eg:输入了错误的URL
- 500 Internal Server Error //服务器发生不可预期的错误
- 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
二、使用fiddler进行对数据的抓包解析。
- 1、认识回话列表菜单
![](https://img-blog.csdnimg.cn/img_convert/5259634656ebc0461041fe14d3a88e59.png)
- # :HTTP Request的顺序,从1开始,按照页面加载请求的顺序递增。
- Result : HTTP响应的状态 Protocol:请求使用的协议(如HTTP/HTTPS)
- HOST:请求地址的域名 URL:请求的服务器路径和文件名,也包含GET参数
- BODY:请求的大小,以byte为单位 Content-Type:请求响应的类型
- Caching:请求的缓存过期时间或缓存控制header的值
- Process:发出此请求的Windows进程及进程ID
- Comments :用户通过脚本或者菜单给此session增加的备注
- custom:用户可以通过脚本设置的自定义值
- 2、右侧菜单面板介绍
![](https://img-blog.csdnimg.cn/img_convert/2e6ecf48b57972649123258131d2ff80.png)
- Statistics页签:
- 通过该页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。
- 选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化
- inspectors页签:
- 它提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,它分为上下两部分:上部分为HTTP Request展示,下部分为HTTPResponse展示
- AutoResponse页签:
- Fiddler最实用的功能,它可以抓取在线页面保存到本地进行调试,大大减少了在线调试的困难,可以让我们修改服务器端返回的数据,例如让返回都是HTTP404或者读取本地文件作为返回内容。
- composer页签:
- 支持手动构建和发送HTTP,HTTPS和FTP请求,我们还可以从web session列表中拖曳session,把它放到composer选项卡中,当我们点击Execute按钮,把请求发送到服务器端。
- log页签:打印日志
- Filters页签:
- 过滤器可以对左侧的数据流列表进行过滤,我们可以标记、修改或隐藏某些特征的数据流。
- Timeline页签:
- 时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为 X 轴,用图表的形式展现出来,就形成了瀑布图。在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间
- 3、命令面板的介绍
![](https://img-blog.csdnimg.cn/img_convert/c827a46e06dbd19f7bb475f5039323c6.png)
- Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
- 常见得命令有:
- help :打开官方的使用页面介绍,所有的命令都会列出来
- cls :清屏 (Ctrl+x 也可以清屏)
- select :选择会话的命令,选择所有相应类型
- select image select css select html
- ?sometext :查找字符串并高亮显示查找到的会话列表的条目
- >size : 选择请求响应大小小于size字节的会话
- =status/=method/@host:查找状态、方法、主机相对应的session会话
- quit:退出fiddler
- Bpafter, Bps, bpv, bpm, bpu
- 这几个命令主要用于批量设置断点
- Bpafter xxx: 中断 URL 包含指定字符的全部 session 响应
- Bps xxx: 中断 HTTP 响应状态为指定字符的全部 session 响应。
- Bpv xxx: 中断指定请求方式的全部 session 响应
- Bpm xxx: 中断指定请求方式的全部 session 响应。等同于bpv xxx
- Bpu xxx:与bpafter类似。
三、使用fiddler过滤数据
- 1、过滤前的列表
![](https://img-blog.csdnimg.cn/img_convert/0983ef599bc8e4955d00ef815ed52305.png)
- 2、过滤后的列表
![](https://img-blog.csdnimg.cn/img_convert/6b2e78c732488381d5366eb520d5718e.png)
- 3、过滤有几种方式,上图只是第一种以主机号过滤,具体流程
![](https://img-blog.csdnimg.cn/img_convert/58b3bc4cba399afd6ce7a2057ff72bda.png)
- 4、以进程号过滤
![](https://img-blog.csdnimg.cn/img_convert/6c32d902b4d3c65f477009a1d32769da.png)
- 5、以请求头过滤(正则表达式推荐使用)
![](https://img-blog.csdnimg.cn/img_convert/8555ad45e6e2771a5e04670e5352bc2c.png)
- 6、还有以下几种方式
![](https://img-blog.csdnimg.cn/img_convert/e27b19d8d9b3338f724d3c0043efd20d.png)
四、使用fiddler修改页面图片,在右侧菜单面板中找到AutoResponder(自动响应/回复)勾选下图
![](https://img-blog.csdnimg.cn/img_convert/0d37736404f102d0e5911a52af1f38e0.png)
- 1、添加URL地址图片地址,例如我把http://www.4399.com/flash_fl/2_1.htm中的4399造梦西游5和火柴人联盟1.2的图片修改掉
![](https://img-blog.csdnimg.cn/img_convert/a1c6624fac69a23fb169774a1bbc7e96.png)
- 1)、首先使用浏览器自带的开发者工具找到图片对应的位置及名字,用名字在fiddler中的命令栏中进行搜索定位图片标签,搜索用?4399_10263631992.jpg回车
![](https://img-blog.csdnimg.cn/img_convert/bfd8a645232b7a269aa63b4d1c4aa0e5.png)
- 2)、也可以使用fiddler自带的imageView视图查看图片信息,找到想要的图片进行修改,稍微比较需要多花点时间
![](https://img-blog.csdnimg.cn/img_convert/31178fc2f631998d84afd87ca46b1fe2.png)
- 3)、找到图片后,点击需要修改的图片把他拖拽到右边AutoResponder菜单面板中,如下图,这有两种方式,一种是直接拖拽还有就是点击Add Rule进行添加,(注意选择Add Rule进行提交首先得在左边列表菜单中点一下图片链接地址)
- 4)、未添加前
![](https://img-blog.csdnimg.cn/img_convert/201bdf86f1e554f39c093abbeca195cf.png)
- 5)、添加后
![](https://img-blog.csdnimg.cn/img_convert/b02cff59c19cf09fd3f018c68ab9d5a7.png)
- 6)、对图片进行修改
![](https://img-blog.csdnimg.cn/img_convert/13a4f70573f4ae11f3d779b87fddb7c5.png)
- 7)、选择喜欢的图片进行替换
![](https://img-blog.csdnimg.cn/img_convert/0f7d844072e6001cc77a850e6652fcf7.png)
- 8)、重新刷新页面修改成功,如下图
![](https://img-blog.csdnimg.cn/img_convert/8809f6686b83441a538f1025a3833452.png)
五、使用fiddler进行修改账号,以禅道为列
- 1、首先输入错误的账户进行登录
![](https://img-blog.csdnimg.cn/img_convert/deea2fd31f1351bae5e51222755679aa.png)
- 2、点击登录后报用户名错误,先不要管它,到fiddler中找到登录时的数据列
![](https://img-blog.csdnimg.cn/img_convert/e58f835ab81a0efe90a7c1c5e8da6ca5.png)
- 3、打断点
![](https://img-blog.csdnimg.cn/img_convert/4076522317caa266199a43db9ecb991d.png)
- 4、进行正确的数据修改(重发送)
![](https://img-blog.csdnimg.cn/img_convert/16f30e95da593580b6a8a2d174fedc94.png)
- 5、取消断点,刷新禅道登录页
![](https://img-blog.csdnimg.cn/img_convert/d007c0b8677af7deda7b4ea2908ea99b.png)
- 6、登录成功
![](https://img-blog.csdnimg.cn/img_convert/8baacfea10581d29338682df7d409740.png)
- 2、以4399为例
![](https://img-blog.csdnimg.cn/img_convert/853521f5eb20ecf3caaf3ca745c31c1d.png)
- 3、保存后去清除缓存,刷新网页,明显感受到了刷新的速度
![](https://img-blog.csdnimg.cn/img_convert/9821f65591f12d9ee05a50166607cb2c.png)