Fiddler个人学习资料
Fiddler简介
- Fiddler是位于客户端和服务器端的HTTP代理
- 目前最常用的http抓包工具之一
- 功能非常强大,是web调试的利器
- 简单的接口测试工具,或者发包工具
●监控浏览器所有的HTTP/HTTPS流量
●查看、分析请求内容细节
●伪造客户端请求
●测试网站的性能
●解密HTTPS的web会话
●全局、局部断点功能
●第三方插件 - 使用场景
●接口调试、接口测试、线上环境调试、web性能分析
●判断前后端bug、开发环境hosts配置、mock、弱网断网测
B/S架构
- 编写程序部署到web服务器
- web服务器运行在服务器上,绑定ip地址并监听某端口,接收和处理http请求
- 客户端通过http协议获取服务器上的网页、文档等资源

HTTP
- Hyper Text Transfer Protocol超文本传输协议
- 用于从万维网服务器传输超文本到本地浏览器的传送协议
- HTTP协议是基于TCP的应用层协议,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容
- 默认端口是80
- http是基于请求与响应模式的、无状态的、应用层的协议

- 完整的HTTP协议包含请求和响应两块内容
HTTP请求报文
- HTTP请求报文主要由请求行、请求头部、空一行、请求正文(请求体)4部分组成。

请求方法
| 请求方法 | 备注 |
|---|---|
| GET | 请求资源 |
| POST | 提交资源 |
| Head | 获取响应头 |
| PUT | 替换资源 |
| DELETE | 删除资源 |
URL
- Uniform Resource Locator:统一资源定位符用于描述网上的资源
- 格式: schema:/ /host [:port#]/path/ …/[?query-string]
●scheme:协议,如http,https,ftp等
●host:域名或者IP地址
●port:端口
●path:资源路径
●query-string:发送的参数 - 如:https://www.baidu.com/s?wd=qq
请求头
| 请求头 | 描述 |
|---|---|
| Host | 主机ip地址或城名 |
| User- Agent | 客户端相关信息,如果操作系统、浏览器等信息 |
| Accept | 指定客户端接收信息类型,如:imag/jpg, text/html, appication/ json |
| Accept-Charset | 客户端按受的字符集,如lgb2312、iso-8059-1 |
| Accept-Encoding | 可接受的内容编码,如gzip |
| Accept - Language | 接受的语言,如Accept Language: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作用一样 |
HTTP响应报文

状态码
- 用以表示网页服务器HTTP响应状态的3位数字代码
| 状态码 | 描述 |
|---|---|
| 1XX | 提示信息,请求被成功接收 |
| 2XX | 成功,请求被成功处理 200 |
| 3XX | 重定向相关 304(比如缓存) |
| 4XX | 客户端错误 404 |
| 5XX | 服务器端错误 500 |
建议:深度学习状态码可百度“HTTP状态码”学习
响应头部
| 响应头 | 描述 |
|---|---|
| Server | HTTP服务器的软件信息 |
| Date | 响应报文的时间 |
| Expires | 指定缓存过期时间 |
| Set -Cookie | 设置Cookie |
| Last-Modified | 资源最后修改时间 |
| Content-Type | 响应的类型和字符集,如:Content-Type:text/html;charset=utf-8 |
| Content-Length | 内容长度 |
| Connection | 如Keep-Alive,表示保持tcp连接不关闭,不会永久保持连接,服务器可设置 |
| Location | 指明重定向的位置,新的URL地址,如304的情况 |
Fiddler工具

- 1.添加备注
- 2.数据重放:重复请求接口。快捷键R;Shift+R可以设置重放次数
- 3.删除
- 4.转到:配合断点
- 5.数据流(流模式):原本服务器返回内容到fiddler再统一一起发到客户端,数据流就是正常服务器一返回就到直接到客户端
- 6.解码:包解码
- 7.保持:设置保持会话数量
- 8.任意进程:选择抓取应用
- 9.查找:Ctrl+F
删除单个请求:delete
删除除此以外的的请求:Shift+delete
全部删除:Ctrl+x
会话列表
- Fiddler抓取到的每条http请求(每一条称为一个session)
- 主要包含了请求的ID编号、状态码、协议、主机名、URL、内容类型、body大小、进程信息、自定义备注等信息
快速执行命令
命令网址:https://docs.telerik.com/fiddler/knowledgebase/quickexec
或者可以在命令行打:help
如: bpu:断点—bpu baidu
辅助标记和工具
-
Statistics (统计)
●HTTP请求的性能和其他数据分析,如DNS解析的时间,建立TCP/IP连接的时间消耗等信息

-
Inspectors(检查器)
●Inspectors意思是检查器
●可以多种方式查看请求的请求报文和响应报文相关信息

-
AutoResponder (自动响应器)
●AutoResponder可用于拦截某一请求,进行如下操作:
●重定向到本地的资源
●使用Fiddler的内置响应
●自定义响应

Composer(组合器)
- 用于设计一个请求报文,并可以执行
- 最小成本发包,检查后端设计,检查程序
Filters(过滤器)很强大,好好用
断点–可测试前后端
- bpu-请求前断点—bpu baidu
- bpafter-响应后断点—bpafter baidu
Fiddler抓包
●点击Tools > Fiddler Options > HTTPS
●勾选Decrypt HTTPS Traffic

设置Fiddler捕获Https流量

FireFox的Https流量–证书



- 用火狐要配置高级里面的证书




*APP抓包
- iOS设备APP抓包-Fiddler设置
●点击Tools > Fiddler Options > Connections.
●勾选Allow remote computers to connect
●重启Fiddler
●确保防火墙允许Fiddler进程可以远程连接
●ios设备连接WiFi
●确保ios设备可以访问到http://FiddlerMachineIP:8888,该地址会返回Fiddler Echo Service 页面

- Android设备抓包
●以小米9为例,打开设置> WLAN >连接上的WLAN设置
●点击代理>手动,设置主机名为Fiddler所在主机的IP,端口为Fiddler监听端口
●打开Android设备浏览器,访问http://ipv4:8888/ (192.168.89.8888/)
●点击页面底部FiddlerRoot certificate下载证书
●打开设置>更多设置>系统安全>加密与凭据>从存储设备安装
●选择下载好的FiddlerRoot. cer进行安装
●浏览器打开https://www.baidu.com,已经可以抓取HTTPS包了
注意:测试完毕,记得关闭代理,否则手机无法上网


1216

被折叠的 条评论
为什么被折叠?



