初识Fiddler

fiddler,译为骗子

是位于客户端、服务器端的HTTP代理,是Web调试的利器。

是c#编写的程序

Fiddler抓包工具-全网最全教程,没有之一_请求报文

Fiddler主要功能:

  • 监控http、https流量
  • 查看、分析请求内容细节
  • 伪造客户端请求和服务器响应
  • 简单测试网站的性能
  • 解密https的web会话
  • 全局、局部断点功能
  • 可使用第三方插件

Fiddler使用场景:

  • 接口调试
  • 接口测试
  • 线上环境调试
  • web性能分析
  • 判断前后端bug
  • 开发环境hosts配置
  • mock
  • 弱网、断网测试

要使用好Fiddler,需要熟悉http协议相关知识,Fiddler与http是相辅相成的关系。

BS架构

Fiddler抓包工具-全网最全教程,没有之一_数据_02

HTTP协议

请求报文

请求行

请求方法

统一资源定位符url,用于描述网上的资源

http协议版本,一般是1.1

请求头

可以是任意内容,又开发自定义,了解常见的请求头

空一行

请求体

不一定会有,get请求是没有请求体

响应报文

响应行

响应头

可由开发自定义

空一行

响应体

文本、xml、html

Fiddler抓包工具-全网最全教程,没有之一_请求报文_03

fiddler菜单栏

File

导入导出会话

Edit

编辑

Rules

过滤会话

Tools

View

视图

Help

帮助

fiddler工具条

Fiddler抓包工具-全网最全教程,没有之一_请求报文_04

备注

重放replay

r

shift+r

删除会话

delete

移除请求

ctrl+x

go 断点

让请求在某个地方停下来

全局断点

请求前断点,在发送到服务器前暂停

流模式

相对于缓冲模式而言,缓冲模式是全部数据回来后,fiddler再返回给客户端,流模式是回来多少返回多少

默认是缓冲模式

解码decode

对所有请求解码

保持会话数量 keep session

会话是会占用内存

选择监听程序 any process

选择监听应用

查找 find

ctrl+f

如快速查找会话中出现的字段,快速定位请求

保存 save

保存所有会话

截图

计时器

browse

快捷打开浏览器

清除缓存 clear cache

文本编码、解码 textwizard

tearoff

分离面板

MSDN

微软开发者网站搜索

online

展示本机的一些信息

fiddler会话列表(监控面版)

展示http的每一条会话

result,响应状态码

protocal

host

url

body,请求体大小

caching

content-type

process,进程

comments

custom

添加列

如fiddler添加ip列

修改配置文件,之后重启

排序

fiddler命令行、状态栏

quickexec

通过命令实现一些功能

如bpu

输入help,可以跳转:​​https://docs.telerik.com/fiddler/knowledgebase/quickexec​

Fiddler抓包工具-全网最全教程,没有之一_响应报文_05

快速停止捕获

快速选择进程

快速断点

fiddler辅助标签、工具

统计性能信息 statistics

前端人员可以看这些数据分析

Fiddler抓包工具-全网最全教程,没有之一_请求报文_06

检查器 inspectors

以不同形式展示请求报文、响应报文,分类展示请求报文、响应报文

自动响应器 autoresponder

Fiddler抓包工具-全网最全教程,没有之一_请求报文_07

选中或者直接拖动

可用于拦截某一请求,进行如下操作:

  • 重定向到本地资源

    Fiddler抓包工具-全网最全教程,没有之一_响应报文_08

  • 使用fiddler内置响应

    Fiddler抓包工具-全网最全教程,没有之一_数据_09

  • 自定义响应

    Fiddler抓包工具-全网最全教程,没有之一_请求报文_10

如生产环境除了问题,不能够直接在生产环境进行调试,重定向到本地

进行钓鱼操作

可以做mock,如测试的接口还没有完全开发好,可以模拟返回响应

Fiddler抓包工具-全网最全教程,没有之一_数据_11

可以进行极端测试,如查询接口没有数据返回,看页面怎么展示,或者返回大量数据

可以做接口调试

composer 设计请求报文

Fiddler抓包工具-全网最全教程,没有之一_响应报文_12

抓包后,直接拖动过来

可以用来发包,如可以绕过前端控制测试后端接口,如前端控制手机号码不能输入格式不对的号码,直接修改请求报文发包测试,看后端是不是校验了

Fiddler抓包工具-全网最全教程,没有之一_数据_13

log

日志

过滤器 fiters

多维度组合过滤,过滤出我想要的内容

Fiddler抓包工具-全网最全教程,没有之一_数据_14

  • hosts主机的过滤

    如指定抓取网站

    Fiddler抓包工具-全网最全教程,没有之一_请求报文_15

  • client process过滤 客户端进程、
  • request headers过滤
  • breakpoint过滤
  • 根据响应码过滤

    Fiddler抓包工具-全网最全教程,没有之一_请求报文_16

  • 根据响应报文内容的类型、大小过滤
  • 根据响应报文头进行过滤

断点

全局断点

对所有的请求都有用

请求前断点,修改请求报文后发给服务器

响应后断点,修改响应报文后返回给客户端。可以不用修改数据库的中的数据,做一些极端测试,如数据库有数据,你先模拟返回没有一条数据。可以模拟网络中断的情形,测试客户端的超时机制

Fiddler抓包工具-全网最全教程,没有之一_请求报文_17

局部断点

通过命令实现

bpu 请求前断点

Fiddler抓包工具-全网最全教程,没有之一_数据_18

bpafter 响应后断点

Fiddler抓包工具-全网最全教程,没有之一_数据_19

弱网测试

Fiddler抓包工具-全网最全教程,没有之一_响应报文_20

可以在配置文件中修改时间,修改后重启fiddler,再启用弱网

Fiddler抓包工具-全网最全教程,没有之一_响应报文_21

https抓包

安装证书

Fiddler抓包工具-全网最全教程,没有之一_数据_22

Fiddler抓包工具-全网最全教程,没有之一_数据_23

Fiddler抓包工具-全网最全教程,没有之一_请求报文_24

Fiddler抓包工具-全网最全教程,没有之一_请求报文_25

Fiddler抓包工具-全网最全教程,没有之一_数据_26

Fiddler抓包工具-全网最全教程,没有之一_响应报文_27

Fiddler抓包工具-全网最全教程,没有之一_请求报文_28

这是提示了自动响应设置没有设置好

Fiddler抓包工具-全网最全教程,没有之一_请求报文_29

重启浏览器

chrome、ie是读取系统代理

firefox浏览器

firefox浏览器是自己管理代理,需要人工设置

Fiddler抓包工具-全网最全教程,没有之一_请求报文_30

firefox浏览器手工导入证书,才能抓取https的包

Fiddler抓包工具-全网最全教程,没有之一_数据_31

导入证书,之后重启浏览器

Fiddler抓包工具-全网最全教程,没有之一_数据_32

app抓包

抓取ios设备app的包

Fiddler抓包工具-全网最全教程,没有之一_响应报文_33

Fiddler抓包工具-全网最全教程,没有之一_数据_34

手机抓取http包,需要安装证书。但是即使按照了证书,不一定能抓到包,因为手机系统和app的各种限制,可能也抓不到包。

抓取android设备app的包

Fiddler抓包工具-全网最全教程,没有之一_响应报文_35

手机抓取http包,需要安装证书。但是即使按照了证书,不一定能抓到包,因为手机系统和app的各种限制,可能也抓不到包。

fiddler插件

willow插件

以项目方式管理host规则

练习环境:​​http://test.lemonban.com/ningmengban/app/login/login.html​