【fidder】fidder工具的简单使用
文章目录
- 1、初识fidder
- 1.1、fidder简介
- 1.2、工作原理
- 2、理解http协议
- 2.1、http协议
- 2.2、http请求报文
- 2.3.1、请求方法
- 2.3.2、URL
- 2.3.3、请求头部
- 2.3、http响应报文
- 2.3.1、状态码
- 2.3.2、响应头
- 3、fidder工具详解
- 3.1、工具栏基本使用
- 3.2、会话列表(session list)
- 3.3、命令行和状态栏
- 3.4、辅助工具和标签
- 3.4.1、Statistic(统计)
- 3.4.2、Inspectors(检查器)
- 3.4.3、AutoResponder(自动响应)
- 3.4.4、Composer(组合器)
- 3.4.5、Filters(过滤器)
- 4、应用实战
- 4.1、断点应用
- 4.1.1、全局断点
- 4.1.2、局部断点
- 4.2、弱网测试
- 4.3、https抓包
- 4.4、APP抓包
- 4.5、fidder插件
1、初识fidder
1.1、fidder简介
fidder是位于客户端和服务端的http代理
主要功能:
- 监控浏览器所有的http/https流量
- 查看、分析请求内容细节
- 伪造客户端请求和服务器响应
- 测试网站性能
- 解密https的web会话
- 全局、局部断点功能
- 第三方插件
应用场景:
- 接口调试、接口测试、线上环境调试、web性能分析
- 判断前后端bug、开发环境hosts配置、mock、弱网断网测试
1.2、工作原理
作为系统代理,发送请求或接受响应
fidder设置了默认代理:8888;只要运行fidder,计算机就会使用默认代理服务器,默认代理服务器的http/https协议的端口号为8888
2、理解http协议
2.1、http协议
Hyper Text Transfer Protocol (超文本传输协议),用于从万维网服务器传输超文本到本地浏览器的传送协议。
http协议是基于TCP的应用层协议,他不关心数据传输的细节,主要用来规定客户端和服务端的数据传输格式。
默认端口:80
http是基于请求与响应模式的、无状态的、应用层的协议
2.2、http请求报文
主要由请求行,请求头部、空一行、请求体(可能没有)4部分组成
2.3.1、请求方法
请求方法 | 备注 |
---|---|
get | 请求资源 |
post | 提交资源 |
head | 获取响应头 |
put | 替换资源 |
delete | 删除资源 |
options | 允许客户查看服务器的性能 |
trace | 回显服务器收到的请求,用于测试或者诊断 |
2.3.2、URL
Uniform Resource Locator :统一资源定位符
格式: schema:/ /host[:port#]/path/ …/ [?query-string ]
● scheme:协议,如http, https, ftp等
● host:域名或者IP地址
● port: 端口
● path:资源路径
● query-string:发送的参数
2.3.3、请求头部
请求头可以是任意信息,根据服务器需要进行组合
请求头 | 描述 |
---|---|
Host | 主机ip地址或域名 |
User-Agent | 客户端相关信息,如操作系统、浏览器等信息 |
Accept | 指定客户端接收信息类型,如: image/jpg, text/html, application/json |
Accept-charset | 客户端接受的字符集,如gb2312,iso-8859-1 |
Accept-Encoding | 可接受的内容编码,gzip |
Accept-Language | 接受的语言,如Accept-Langunge:zh-cn |
Authorization | 客户瑞提供给服务端,进行权限认证的信息 |
Cookie | 携带的cookie信息 |
Referer | 当前文档的URL,即从哪个链接过来的 |
Content-Type | 请求体内容类型,如Content-Type: application/x www form urlencoded |
Content -Length | 数据长度 |
Cache-Control | 缓存机制,如Cache-Control:no-cache |
Pragma | 防止页面被缓存,和Cache-control:no-cache作用一样 |
2.3、http响应报文
主要由状态行、消息报头、空一行、响应正文 4部分组成
2.3.1、状态码
用以表示网页服务器http响应状态的3位数字代码
状态码 | 描述 |
---|---|
1XX | 提示信息,请求被成功接收 |
2XX | 成功,请求被成功处理 200 |
3XX | 重定向相关 304 |
4XX | 客户端错误 404 |
5XX | 服务器端错误 500 |
2.3.2、响应头
响应头 | 描述 |
---|---|
Server | HTTP服务器的软件信息 |
Date | 响应报文的时间 |
Expires | 指定缓存过期时间 |
Set-Cookie | 设置Cookie |
Last-Modified | 资源最后修改时间 |
Content-Length | 内容长度 |
Connection | 如:Content-Type:text/html;charset=utf-8 |
Connection | 如keep-Alive,表示保持tcp链接不关闭,不回永久保持链接,服务器可设置 |
Location | 指明重定向的位置,新的URL地址,如304的情况 |
3、fidder工具详解
3.1、工具栏基本使用
3.2、会话列表(session list)
fidder抓取的每条http请求每一条称为一个session
主要包含请求的ID编号、状态码、协议、主机、URL、内容类型、body体大小、进程信息、自定义备注等信息
3.3、命令行和状态栏
QuickExec Reference |fidder经典 (telerik.com)
3.4、辅助工具和标签
3.4.1、Statistic(统计)
会话性能方面信息的统计
3.4.2、Inspectors(检查器)
以不同的格式显示请求与响应的内容供检查
3.4.3、AutoResponder(自动响应)
用于拦截某一请求,进行如下操作:
- 重定向到本地的资源
- 使用fidder的内置响应
- 自定义响应
3.4.4、Composer(组合器)
可以用来做简单的接口测试的工具
3.4.5、Filters(过滤器)
根据过滤条件选择在会话列表显示需要的会话
4、应用实战
4.1、断点应用
4.1.1、全局断点
【规则—>自动断点】。断点有两种;请求之前断点和响应之后断点
应用场景:
- 篡改请求与响应数据,然后再发送请求,查看界面的展示情况,做一些极端测试
- 断点请求一直不发送到服务端,模拟了一种网络中断的场景
4.1.2、局部断点
命令 | 注释 |
---|---|
bpu + 内容 | 请求前断点(再次输入bpu,取消断点) |
bpafter+ 内容 | 响应后断点(再次输入bpafter,取消断点) |
4.2、弱网测试
模拟网络限速
【规则—>性能—>模拟调制解调器速度】,限制网络速度的值为配置文件默认设置的值;可以通过【规则—>自定义规则】打开配置文件,搜索 Simulate 修改配置。
4.3、https抓包
http代理:火狐浏览器需要手动设置代理,谷歌和IE浏览器中的设置代理
https代理:火狐浏览器,需要fidder先导出证书,然后火狐浏览器导入该证书,fidder才能抓取到火狐浏览器的https请求
4.4、APP抓包
实现抓包手机APP的步骤:
- 设置fidder允许手机远程连接
- 查看电脑ip地址
-
手机与电脑连接同一个WiFi,能相互ping通
-
手机浏览器打开http://ip:8888 下载fidder证书并安装
-
打开手机 系统设置-WLAN,设置手动代理;主机名:电脑ip,端口号:8888
-
抓包结束记得关闭手机代理和删除证书
4.5、fidder插件
插件网站:https://www.telerik.com/fiddler/add-ons