一、几种主流的抓包工具的对比:
Wireshark:通用的抓包工具,抓取信息量庞大,详细。通常需要过滤才可容易得到有用信息。如果只抓http请求个人认为有点大材小用。
Firebug、httpWatch:其实不够给力的,相对而言功能有点欠缺。
花瓶:界面相较与fiddler要简洁,他专注于Mac平台
一、Fiddler基本概念
1、fiddler是位于客户端与服务端的http代理,他能记录所有的客户端与服务端之间的http或者https的请求响应。进行截获、重发、编辑、转存等操作。
2、允许监视、设置断点、修改输入输出数据,它包含一个强大的基于事件脚本的子系统,并且支持.net语言进行扩展。
二、Fiddler界面基本介绍
主界面:
主菜单:
File: 文件
capture Traffic: 是否启动抓包;勾选后左下角显示capturing。是开始抓取;不勾选是不抓取,无capturing。
new viewer: 新建fiddler窗口。
save: 将当前抓取的会话进行保存。
其他的基本上不用,就不写了。
Edit:编辑
copy: · 对所选的信息进行copy,包含对session、URL、headers等信息进行copy。
Remove: 删除,包含删除选择的session,未选择的session、删除所有的。
Select All: 将回话区所有的会话全选。
Undelent: 将上一次删除的会话进行复原。
Paste as sessions: 将以前的会话粘贴回来。
Mack: 自定义不同状态的会话的显示的颜色。
Unlock for Editing: 不允许进行编辑。
Find sessions: 对会话进行快捷查找,相当于Ctrl+F。
Rules:规则
Hide Image Requests: 隐藏图片请求。
Hide connects: 隐藏connects请求。
Automatic Breakpoints: 修改请求或者响应的内容,做断点使用较多。
Customize Rules: 调取脚本操作,多用于修改网络、其他自定义时使用。
User-Agents: 模拟其他浏览器进行请求。
Performance: 一个性能测试工具,包含:模拟调制解调器速度、禁止缓存、显示TTL8。
Tools:工具
Options: 一些设置项,包含:对抓取接口是http、HTTPS类型设置、获取证书、设置代理的端口号等信息。
Wininet options: 对PC端进行设置代理。
Clear wininet cache: 清除缓存。
Clear wininet cookies: 清除cookies。
TextWizard: 编码工具,可以用来进行编码、解码、转码操作。
compare sessions: 将两个sessions会话进行对比,正常使用需要安装插件。
Reset Script: 将脚本进行还原。
view IE cache: 视图缓存
New sessions Clipboard..: 新建会话剪切板
HOSTS: 对host进行修改、配置。
View:视图
Autoscroll session list: 设置会话区在抓取时是否自动滑动。
其他的主要是对布局方式的设置,包括菜单栏是否显示、界面的显示方式。
Help:帮助
主要包含fiddler自身的一些说明,基本上不用,感兴趣的小伙伴可以自己去了解一下,或者留言。
快捷菜单栏
: 对选择的会话进行备注。
: 将选择的会话进行重新发送。
: 将会话进行删除,包含删除全部、删除其他类型。。
: 主要在断点中使用。具体的下次再介绍。
: 选中时为流模式,主要作用既特性:1、收到内容立即发送给客户端
2、更接近真实浏览器的性能,速度快、时序图更准确,但是不能控制响应。
不选中时为缓冲模式,主要作用既特性:1、内容全部返回后再发送至客户端。
2、可以控制响应、修改响应数据,但是时序图有时候会出现异常。
: 主要是对一些价加密的东西自动解密,默认是勾选的。
: 设置会话区最多显示的会话数。
: 精准抓取指定的网站的数据包,多用于当同时抓取多个网站时。
: 快速查找。
: 保存。
: 截屏。
: 秒表。
: 快速打开指定的浏览器。
: 清除缓存。
: 编码小工具,用于对数据的编码、转码、解码等。
: 快速打开。
: 当网站使用关键字的快速查找。
会话区
: 代表会话的编号,列表不同的图标代表不同的含义。
: 代表请求后的状态。
: 代表抓取的请求的协议。
: 代表抓取的请求的主机地址。
: 代表抓取的请求的URL以及端口号地址。
: 代表抓取的请求的大小。
: 显示和缓存相关的内容。
: 主要代表抓取的请求的类型,比如图片、josn、HTML等。
: 发出此请求的Windows进程以及进程ID。
: 通过脚本或者右键菜单给此请求增加的备注信息。
: 通过脚本设置的自定义值。
Decode selected sessions: 将选择的会话进行重新请求一次。
: 统计选择的请求的性能信息,包括流量、响应等信息。
: 显示请求的请求头信息。
: 进行对请求进行修改、重定向时使用。
: 模拟接口的请求,包含post、GET请求等。可以用来简单的接口测试。
: 显示脚本内容。
: 操作的日志。
: 设置过滤,具体设置自己可以去单独了解一下。
: 显示多个请求的瀑布流的时间。
请求参数显示区
headers: 主要显示选择的请求的信息,包含、请求头、请求体、body等信息。
textView: 以文本的形式显示请求参数以及body值。
SyntaxView: 以脚本的形式显示请求参数以及body值(需要安装Syntaxview插件)。
WebForms: 以列表的形式显示请求参数以及body值。
HexView: 以16进制形式显示请求参数以及body值。
Auth: 显示header中Proxy-Authorization和Authorization值。
Cookies: 以直观的界面显示header中的cookies的值。
Raw: 将整个请求以纯文本的形式显示。
Josn: 以josn串形式显示请求参数以及body值。
XML: 以XML的形式显示请求参数以及body值。
响应结果显示区
Transformer: 响应信息的压缩编码格式,对响应信息进行编码、解码、转码操作。
Headers: 响应信息,包含响应状态、响应头、响应体。
textView: 以文本的形式展示响应结果。
SyntaxView: 以脚本的形式展示响应结果(需要安装插件)。
ImageView: 当响应中包含图片时可以用此功能进行查看图片以及图片信息。
HexView: 以16进制展示响应结果。
WebView: 以列表形式展示响应结果。
Auth: 展示响应结果中部分信息。
Caching: 响应的缓存过期时间或者缓存
Cookies: 展示响应中的cookies信息。
Raw: 以纯文本形式展示响应头。
json: 以JSON形式展示响应结果。
XML: 以XML形式展示响应结果。
会话区域各个图标代表的含义
图标 | 含义 |
![]() |
请求已经发往服务器 |
![]() |
已从服务器下载响应结果 |
![]() |
请求从断点处暂停 |
![]() |
响应从断点处暂停 |
![]() |
请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body) |
![]() |
请求使用 HTTP 的 POST 方法 |
![]() |
请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道 |
![]() |
响应是 HTML 格式 |
![]() |
响应是一张图片 |
![]() |
响应是脚本格式 |
![]() |
响应是 CSS 格式 |
![]() |
响应是 XML 格式 |
![]() |
响应是 JSON 格式 |
![]() |
响应是一个音频文件 |
![]() |
响应是一个视频文件 |
![]() |
响应是一个 SilverLight |
![]() |
响应是一个 FLASH |
![]() |
响应是一个字体 |
![]() |
普通响应成功 |
![]() |
响应是 HTTP/300、301、302、303 或 307 重定向 |
![]() |
响应是 HTTP/304(无变更):使用缓存文件 |
![]() |
响应需要客户端证书验证 |
![]() |
服务端错误 |
![]() |
会话被客户端、Fiddler 或者服务端终止 |