Fiddler基础知识
一、Fiddler是什么? Fiddler是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。 二、Fiddler的主要功能
- 截获从浏览器或者客户端软件向服务器发送的http/https请求
- 修改客户端请求或服务端响应
- 创建自动响应规则
- 模拟弱网场景
- 提供第三方扩展插件,测试网站性能 三、Fiddler工作原理
Fiddler是以代理WEB服务器的形式工作的,浏览器/客户端与服务器之间通过建立TCP连接以HTTP协议进行通信,它使用代理地址:127.0.0.1,端口:8888
首先fiddler截获客户端浏览器发送给服务器的https请求, 此时还未建立握手。
第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证书, 用根证书公钥进行解密, 验证服务器数据签名, 获取到服务器CA证书公钥。
第二步, fiddler伪造自己的CA证书, 冒充服务器证书传递给客户端浏览器, 客户端浏览器做跟fiddler一样的事。
第三步, 客户端浏览器生成https通信用的对称密钥, 用fiddler伪造的证书公钥加密后传递给服务器, 被fiddler截获。
第四步, fiddler将截获的密文用自己伪造证书的私钥解开, 获得https通信用的对称密钥。
第五步, fiddler将对称密钥用服务器证书公钥加密传递给服务器, 服务器用私钥解开后建立信任, 握手完成, 用对称密钥加密消息, 开始通信。
第六步, fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文。再次加密, 发送给客户端浏览器。
第七步, 客户端向服务器发送消息, 用对称密钥加密, 被fidller截获后, 解密获得明文。
由于fiddler一直拥有通信用对称密钥, 所以在整个https通信过程中信息对其透明。
原文创作:小菠萝测试笔记
原文链接:https://www.cnblogs.com/poloyy/p/12128882.html
文章列表
- 软件评测师笔记四 操作系统
- 软件评测师笔记八 测试用例设计
- 软件评测师笔记三 软件测试
- 软件评测师笔记七 测试基础概念
- 软件评测师笔记一 网络相关
- 软件测试52讲 读书笔记 软测的核心竞争力
- 软件测试52讲 读书笔记 用户登录
- 软件测试52讲 读书笔记 如何高效填写软件缺陷报告?
- 软件测试52讲 读书笔记 如何设计一个“好的”测试用例
- 软件测试52讲 读书笔记 如何做好测试计划
- 软件测试52讲 读书笔记 你真的懂测试覆盖率吗?
- 软件测试52讲 读书笔记 为什么要做自动化测试
- 自定义博客cnblogs样式的必备前端小知识js、jq
- 自定义博客cnblogs样式的必备前端小知识css
- 测试工具Fiddler二 入门使用
- 测试工具Fiddler三 常见功能介绍
- 测试工具Fiddler一 基础知识
- 测试基础篇二 面试挺常见
- 测试基础篇一 面试终极常见
- 安全测试通用用例
- Linux-配置环境变量的几种方式
- Linux-Centos7+配置阿里云 yum 源
- Java-高级点的东西
- Java-集合、Map 相关
- Java-线程相关
- Java-基础
- HTTP图解笔记六 第6章 HTTP首部
- HTTP图解笔记一 第1章 了解Web及网络基础
- Git-本地 Git 绑定 Github 仓库
- Git-本地 Git 绑定 Gitee 仓库
- Git-Window 同一电脑配置多个 git 公钥
- Git-Linux 安装 Git
- Git-Linux 初始化 Git 环境
- Airtest入门篇