fiddler工具的使用
本文主要介绍一下fiddler工具的使用
1. Fiddler基础知识
-
Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是: 127.0.0.1,默认端口8888, 我们也可以通过设置进行修改。
-
代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送从出去,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器; 同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端
-
Fiddler可以抓取支持http代理的任意程序的数据包,如果要抓取https的话,要先安装证书
如下是fiddle发送请求:
2. Fiddler HTTP代理的设置
Fiddler4.0在启动的时候,默认会监听127.0.0.1:8888端口。网上讲了很多方法,比如手动设置IE/Firefox浏览器代理为127.0.0.1:8888
, 此种方法虽然可行,但是每个不同浏览器都得设置一下,比较麻烦。我们启动Fiddler之后, 可以发现Fiddler能够自动代理差不多所有的浏览器, 然后再跑到各浏览器代理设置的地方去查看, Fiddler并未在那里帮我们设置。那么Fiddler是怎么帮我们自动做到代理所有浏览器的呢?
其实Fiddler是通过修改注册表的方式来设置代理服务器的。下面我们详细介绍一下操作步骤:
1) 按快捷键WIN + R
调出运行窗口,输入regedit
后进入注册表
2) 找到如下:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/
点击, 我们可以看到:
上面Fiddler4.0自动帮我们设置了ProxyEnable
以及ProxyServer
。
3. Fiddler的使用
1) 要使用Fiddler进行抓包,首先要确保Capture Traffic是开启的(安装后默认是开启的),勾选FILE->Capture Traffic
,也可以直接点击Fiddler界面左下角的图标开启和关闭抓包
2) 所以基本上不需要做什么配置,安装后就可以进行抓包了。点击每一个抓到的包, 然后在右侧点击Insepector
查看详细内容,主要分为请求(即客户端发出的数据)和响应(服务器返回的数据)两部分
3) 我们也可以到如下页面向web服务器发起请求
4. Fiddler添加时间戳信息
有时候,我们通过Fiddler抓包,想看到请求响应的时间戳信息。默认情况下, Fiddler是没有打开时间戳信息的,我们可以在菜单栏”Rules”->”Customize Rules”中添加如下脚本:
// 显示每行请求的发起时间:时分秒毫秒
public static BindUIColumn("BeginTime", 80)
function BeginTimingCol(oS: Session){
return oS.Timers.ClientDoneRequest.ToString("HH:mm:ss.fff");
}
// 显示每行请求的响应时间:时分秒毫秒
public static BindUIColumn("EndTime", 80)
function EndTimingCol(oS: Session){
return oS.Timers.ServerDoneResponse.ToString("HH:mm:ss.fff");
}
// 显示每行请求的服务端耗时时间
public static BindUIColumn("Time Taken", 80)
function CalcTimingCol(oS: Session){
var sResult = "0";
if ((oS.Timers.ServerDoneResponse > oS.Timers.ClientDoneRequest)) {
sResult = (oS.Timers.ServerDoneResponse - oS.Timers.ClientDoneRequest).TotalMilliseconds.ToString("N0");
}
return sResult + "ms";
}
之后继续抓包,则可以看到请求、响应的时间戳信息了。
[参看]