fiddler抓包调试工具
一 、 Fiddler简介
fiddler是一个功能强大Web调试(抓包)工具,用于监控、检查、编辑和记录所有的HTTP/HTTPS请求。允许在计算机与internet之间监视、设置断点、甚至能修改请求/响应数据。它适用于任何浏览器 \系统或平台。
对HTTP协议越了解,就越能掌握fiddler的用法 。
越熟悉fiddler的使用,越能帮助理解HTTP协议。
二 、Fiddler 工作原理
1、当浏览器访问服务器会形成一个请求,此时,fiddler就处于请求之间,当浏览器发送请求,会先经过fiddler,然后在到服务器;
2、当服务器有返回数据给浏览器显示时,也会先经过fiddler,然后数据才到浏览器中显示。
这样一来fiddler就抓取到了请求和响应的整个过程。
1)Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。
2)当Fiddler退出的时候它会自动注销, 这样就不会影响别的程序。
3)如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。 解决的办法是重新启动然后正常关闭Fiddler。
三 、Fiddler 界面
四 、 Fiddler 抓包解析
1 、左侧面板:
会话(数据包)列表
会话列表信息:
- #: 抓到包的序号,按照抓到包的顺序递增
- Result: HTTP(S)请求的响应状态码
- Protocol: 请求的协议类型:HTTP / HTTPS
- Host: 请求地址的域名
- URL: 请求的服务器路径和文件名,包含get参数
- Body: 请求的大小,以字节(byte)为单位
- Caching: 请求的缓存过期时间 或 缓存控制header的值
- Content-Type: 请求响应的类型
- Process: 发出此请求的 Windows进程 及 进程ID
- Comments: 用户通过脚本或者菜单给此session增加的备注
- custom: 用户可以通过脚本设置的自定义值
2 、右侧面板
Statistics统计页签 :
用户可以通过选择多个会话来得到这几个会话的总的信息统计,比如多个请求和传输的字节数。选择第一个请求和最后一个请求, 可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多, 从而对页面的访问进行访问速度优化。
inspectors检查页签 :
它提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,它分为上下两部分:上部分为HTTP Request(请求)展示,下部分为HTTPResponse(响应)展示。
AutoResponse自动响应页签 :
Fiddler最实用的功能, 它可以抓取在线页面保存到本地进行调试, 大大减少了在线调试的困难, 可以让我们修改服务器端返回的数据, 例如让返回都是HTTP 404或者读取本地文件作为返回内容。
可设置打开某网页显示自己想要的内容,比如抓取百度链接,点击add rule,设置如下所示:
到百度页面刷新即可显示该图片
composer构建页签 :
支持手动构建和发送HTTP, HTTPS和FTP请求, 我们还可以从web session列表中拖曳session, 把它放到composer选项卡中, 当我们点击Execute按钮, 把请求发送到服务器端。操作如下图所示:
这样设置发送的请求,就不是浏览器发出的了,而是fiddler发出的,查看inspectors里面的信息便可看出。
log日志页签 :
打印日志
Filters过滤页签 :
过滤器可以对左侧的数据流列表进行过滤, 我们可以标记、 修改或隐藏某些特征的数据流。
Timeline时间轴页签 :
时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。 每个网络请求都会经历 域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为 X 轴, 用图表的形式展现出来, 就形成了瀑布图。
在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间。
五、Fiddler命令行工具
Fiddler的会话列表下方有一个命令行工具叫做QuickExec,允许直接输入命令。
常见命令:
help : 打开官方的使用页面介绍, 所有的命令都会列出来
cls : 清屏 (Ctrl+x 也可以清屏)
select : 选择会话的命令, 选择所有相应类型select image、select css、select html
?sometext : 查找字符串并高亮显示查找到的会话列表的条目,?qq.com
>size : 选择请求响应大小小于size字节的会话
=status/=method/@host : 查找状态、方法、主机相对应的session会话,=504,=get,@www.qq.com
quit:退出fiddler
Bpafter,Bps, bpv, bpm, bpu这几个命令主要用于批量设置断点
Bpafter xxx: 中断 URL 包含指定字符的全部 session 响应
Bps xxx:中断 HTTP 响应状态为指定字符的全部 session 响应。
Bpv xxx:中断指定请求方式的全部 session 响应
Bpm xxx:中断指定请求方式的全部 session 响应,等同于bpv xxx
Bpu xxx:与bpafter类似。
、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、