在实际开发过程、生活中,你可能会遇到这样的问题:
Fiddler
调试来自PC,Mac或Linux系统以及移动(iOS和Android)设备的流量。确保在客户端和服务器之间传输正确的cookie,标头和缓存指令。支持任何框架,包括.NET,Java,Ruby等。并且可以进行HTTP/HTTPS流量记录,安全测试、性能测试等,可以说是一个不错的软件,但是唯一遗憾的就是没有MAC版本,如果你的电脑是mac那麽可以考虑使用CrossOver进行安装和练习。
下载:
Fiddler官方:https://www.crossoverchina.com/
填写好你的邮箱,点击下载你的邮箱会收到一个fiddle发送的邮件你就可以下载了!
安装:
无脑下一步即可,这里不做过多介绍
使用:
我们可能在使用的时候面临几种使用情况
我们先来介绍下前两种解决方安
不出意外我们进入应该是这样的页面
首先我们需要进行一些简单的设置,因为现在网页端请求和APP以及小程序大部分都是用的是HTTPS协议所以我们需要让软件来获取HTTPS协议。
这样你的fiddler就可一获取HTTPS的数据啦,如果你给网站配置过HTTPS那麽“证书”这个词肯定不会陌生,Fiddler也不例外,第一次会弹出证书安装提示,若没有弹出提示,勾选Actions-> Trust Root Certificate进行证书的安装。
选中Allow remote computers to connect(允许远程连接)
Act as system proxy on startup(作为系统启动代理)
完成后保存,并且重启Fiddler。
浏览器抓包
当你要使用浏览器抓包,数据信息肯定要通过代理服务器然后向路由传递,而Fiddler检测代理服务器端口我们设定的是8888,所以你的浏览器要设定一个局域网代理以及端口号,这样就有了接下来的故事。
我下载的是Chrome的一个插件交SwitchOmega,帮助我设定代理,这里代理协议是HTTP,设hi好后点击应用选项
右键点击你设定好的“情景模式”(软件里面这样叫),然后你就可以访问一个网址看看Fiddler是否已经抓取到了数据信息。
这是我访问www.baidu.com,抓取的信息
当然相信,了解HTTP协议的你,肯定可以快速找到你想要获得的信息。
软件如何抓取呢?
如果我想抓取一些软件传递的数据信息我如何使用Fiddler?刚好因为最近的一个微信需求,我在使用Fiddler进行手机抓包的时候,因为微信7.0版本对与证书的验证更加的严密,使我没办法抓取到我想要的一个二次开发微信公众号的数据,于是我用电脑登陆了电脑微信然后通过电脑微信访问那个公众号,Fiddler在进行抓取获得了我想要的信息。很简单!很简单!
右键长按这个按钮然后把它拖拽到微信的窗口上就可以了!
变成这个样子搭建看到上面的红色字体了吗?然后我就可以用电脑端微信访问微信公众号(那种经过二次开发的)。
然后就可以抓到了,这个方法小程序好像也适用大家可以测试看看。
手机抓包
手机抓包过程:保证电脑和手机是在一个局域网下也就是在一个WiFi下--->手机WiFi设定代理----->访问网址:你的电脑IP+端口号----->安装证书并且设定为信任,我是小米手机安装完了他自动就弹出是否设定信任,其他手机如果没弹出的话需要手动设定,苹果手机一般都需要手动设定----->正常访问你抓取的APP
设置好代理主机名和端口号,主机名可以使用cmd命令查找也就是你的无线适配器WLAN的IPV4地址
手机访问你的IP:端口号,会弹出Fiddler,点击这个可以下载证书并且安装,一定要记得设置信任,尤其是苹果用户。
安装完后你就可以访问你要抓取的APP了,电脑端的Fiddler就会有显示了。
嗯.....好看养眼
资料
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 格式 |
|
响应是一个音频文件 |
|
响应是一个视频文件 |
|
响应是一个 SilverLight |
|
响应是一个 FLASH |
|
响应是一个字体 |
|
普通响应成功 |
|
响应是 HTTP/300、301、302、303 或 307 重定向 |
|
响应是 HTTP/304(无变更):使用缓存文件 |
|
响应需要客户端证书验证 |
|
服务端错误 |
|
会话被客户端、Fiddler 或者服务端终止 |
Statistics 请求的性能数据分析
左边看完了,现在可以看右边了
随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析了(不可能安装好了Fiddler一条请求都没有…):
Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容: