一、简介
fiddler的实现原理是以代理服务器的方式工作,代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。
Fiddler是一个http协议调试代理工具,即只是针对HTTP协议的(工作在OSI参考模型的应用层),而wireshark是针对几乎所有协议的。
浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器。 而Fiddler是c#开发(微软出品,主要作者Eric Lawrence)的http代理服务器,fiddler工作于七层中的应用层,能够捕获到通过的http(s)请求。(浏览器 < -> Fiddler < -> 服务器)
启动Fiddler之后会监听8888端口(默认8888,可以修改)
二、安装
-
-
下载安装
a) 可以到官网下载Fiddler免费安装包
-
三、抓包常用操作
1.开启抓包
Fiddler想要抓到数据包,要确保Capture Traffic是开启,在File –> Capture Traffic。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。
2.图标与内容说明
Fiddler开始工作后,抓到的数据包就会显示在列表里面,下面总结了这些都是什么意思:
名称 | 含义 |
# | 抓取HTTP Request的顺序,从1开始,以此递增 |
Result | HTTP状态码 |
Protocol | 请求使用的协议,如HTTP/HTTPS/FTP等 |
Host | 请求地址的主机名 |
URL | 请求资源的位置 |
Body | 该请求的大小 |
Caching | 请求的缓存过期时间或者缓存控制值 |
Content-Type | 请求响应的类型 |
Process | 发送此请求的进程:进程ID |
Comments | 允许用户为此回话添加备注 |
Custom | 允许用户设置自定义值 |
图标 | |
请求已经发往服务器 | |
已从服务器下载响应结果 | |
请求从断点处暂停 | |
响应从断点处暂停 | |
请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body) | |
请求使用 HTTP 的 POST 方法 | |
请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道 | |
响应是 HTML 格式 | |
响应是一张图片 | |
响应是脚本格式 | |
响应是 CSS 格式 | |
响应是 XML 格式 | |
响应是 JSON 格式 |
3.请求时间记录
随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析了
4.请求具体内容
Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容:
一般我们点击Inspectors-Raw查看请求的原始内容
5.请求过滤规则
Fiters 是过滤请求用的,左边的窗口不断的更新,当你想看你系统的请求的时候,你刷新一下浏览器,一大片不知道哪来请求,看着碍眼,它还一直刷新你的屏幕。这个时候通过过滤规则来过滤掉那些不想看到的请求。
Zone 指定只显示内网(Intranet)或互联网(Internet)的内容
Host 指定显示某个域名下的会话
如果框框为黄色(如图),表示修改未生效,点击红圈里的文字即可
6.Timeline 请求响应时间
7.Fiddler 设置解密HTTPS的网络数据
解密HTTPS需要手动开启,依次点击:
Tools –> Options –> HTTPS
四、请求修改与断点
断点可以直接点击Fiddler下图的图标位置,就可以设置全部请求的断点,断点的命令可以精确设置需要截获那些请求。如下示例: