Wireshark 、HTTPWatch、Fiddler的介绍
- Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。
- Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用(TCP/IP协议监听)。
- Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显无力,而Fiddler2 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。
- Fiddler只能抓http和https数据包,所以在针对http和https数据包的抓取上它更加专业。
功能:
1.截获客户端HTTP/HTTPS的请求
2.可查看截获的请求内容
3.并可伪造请求内容以及响应结果
4.测试网站性能
5.解密HTTPS的回话
6.可拓展插件
复制代码
如何使用
开启后自动修改了浏览器的代理服务器
- 流模式(实时可以显示,接近浏览器本身的响应情况)
- 缓冲模式(HTTP请求所有的数据都准备好只有才把数据返回给客户端,可以控制服务器响应)
Fildder使用场景
- 开发环境host配置
- 前后端接口调试
- 线上bugfix(可将发布文件代理到本地,快速定位线上bug)
- 性能分析和优化(提供请求实际图,以便于做优化)
目录
工具条
- 对请求选中添加注释
Replay
: 选中请求重新提交(快捷键R),可重新请求。X
: 清空监控面板GO
: http请求或者返回断点查看- 如同开发中我们常用的Debug
- 配合状态栏中的断电开关使用
- 支持打开请求断点和响应断点
Stream
: 模式切换- Stream流模式 (接近正常的HTTP请求,实时响应)
- 缓冲模式(请求完全结束才会返回,可控制响应)
Decode
: 解压请求,更加方便查看Http请求里面的信息Keep Session
: 会话保持数AnyProcess
: 过滤请求(指定浏览器,通过选中进程)Find
: 条件搜索,查找标注save
: 保存当前会话- 截图
- 计时器
Browse
: 快速启动浏览器Clear Cache
: 清楚浏览器缓存TextWizard
: 编解码以及工具Tearoff
: 分离面板
状态条
- 黑窗口: QuickExec命令行, 输入help 就能去官网查看详细命令
Capturing
: 开启和关闭代理webbrowsers
: 过滤来源- 添加请求前请求后断点
- 连接数
- 请求地址
监控面板
- 面板图标
- 右侧功能
statistics
数据统计 -- 连接建立 发送请求 发送请求头 请求发送出去 RTT 往返时间inspectors
请求解包 -- 请求/响应autoresponder
资源代理 -- 代理服务器的文件,更改js,等文件,线上bugfixcomposer
前后端接口联调 -- 拖至窗口进行请求伪造filters
过滤器 -- 过滤无用请求log
日志timeline
网络性能优化 -- 选中同一个网站查看来进行性能优化FiddlerScript
通过代码来修改代理请求响应等 来限制请求 延迟等
简单的运用
设置断点
按照之前介绍的,在状态栏启用断点(无论是请求断点,还是响应断点)后,所有的请求都会中断。 事实上,一个网页加载时,会触发很多异步请求。甚至在加载完成后,也还会不停地发送异步请求,比如现在很流行的二维码登录页面。拦截所有请求似乎显得不太合适。 而在上一节其实留了断点的命令行没有介绍。断点即 breakpoint,所有跟断点相关的都是以 bp 为前缀。
bpu
:请求时断点,比如bpu /foo
bpafter
:请求时断点,比如bpafter /foo
bps
:请求时断点,比如bps 404
bpm
:请求时断点,比如bpm post
用不带参数的命令可以清除断点,比如 bpafter 可以清除所有的响应断点。
url 的匹配方式是判断“字符串是否包含”,比如 bpu /foo 会拦截所有包含 /foo 的请求。
如果忘了这些命令,在命令行输入 bp ,敲回车,就能看到提示了。bp is short for breakpoint,这个能记住吗?
具体使用
- 文件、文件夹代理和host配置
Tools-->host来更改 (不通过system下的 host)
-
AutoResponder
: 监控面板- Enable Rules 开启资源代理
- 拖拽请求到窗口,支持正则表达式匹配
- 选择响应内容
- 保存
-
请求伪造
- 拖拽请求到窗口
- 修改请求
- excute执行伪造请求
-
网络请求延迟(FiddlerScript的使用)
FiddlerScript将请求代码化,可对请求前、请求后代码进行修改 再
OnBeforeRequest
中- 添加oSession["request-trickle-delay"]="3000"; 为请求添加3秒延时
- 添加oSession["response-trickle-delay"]="3000"; 为服务器响应添加3秒延时
或者通过 Rulse
Rules -> Customize Rules ctrl+f 查找 SimulateModem ,看到具体代码块 ,修改延迟时间并且保存 Performance -> Simulate Modems Speeds : 开启或者关闭延迟
HTTPS抓取设置
HTTPS正常是无法抓取的,需要导入安装Fiddler的证书
下载并安装Fiddler证书生成器:www.telerik.com/docs/defaul…
步骤如下: 进入Tools -> Options 如图配置
1.HTTPS:
2.Connections:
3.导出证书:
在`HTTPS`的`Actions`里面选择`Export Root Certificate to Destop` 生成Fiddler证书到桌面
复制代码
- 截获浏览器HTTPS请求
找到自己常用浏览器的设置 管理证书,导入自己刚刚生成的证书就ok啦 重启Fiddler
安全链接提示
可参照Fiddler的HTTPS抓包最全配置
Fiddler插件
官方插件下载地址
willow插件