Chinaunix首页 | 论坛 | 博客
  • 博客访问: 801791
  • 博文数量: 104
  • 博客积分: 915
  • 博客等级: 下士
  • 技术积分: 2171
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-24 21:34
文章分类

全部博文(104)

文章存档

2018年(4)

2015年(14)

2014年(9)

2013年(56)

2012年(21)

分类: 其他平台

2015-09-05 21:52:11

Fiddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应,因此,它比一般的firebug或者是chrome自带的抓包工具要好用的多。

不仅如此,它还可以支持请求重放等一些高级功能。

显然它是可以支持对手机应用进行http抓包的。
下载链接http://files.cnblogs.com/xiaokang088/fiddler4setup.zip 


右侧窗口:

Stastics:统计选中的一个或多个请求相关数据,大小、耗时

Inspectors:多种方式查看Request或者Response的详细消息

AutoResponder: 设置一些规则将符合规则的请求指向本地。

Composer:创建发送HTTP请求

Log:日志

Filters:设置会话过滤规则

Timeline:网络请求时间


当你启动了Fiddler,程序将会把自己作为一个微软互联网服务的系统代理中去。你可以通过检查代理设置对话框来验证Fiddler是被正确地截取了web请求。操作是这样的:点击IE设置,工具,局域网设置,最后点击高级。

作为系统代理,所有的来自微软互联网服务(WinInet)的http请求再到达目标Web服务器的之前都会经过Fiddle,同样的,所有的Http响应都会在返回客户端之前流经Fiddler。这样,就能明白Fiddler很多作用了吧!

当你关闭Fiddler的时候,它就会自动从系统注册表中移出。

用Fiddler来做性能测试 HTTP统计视图通过显示所有的Http通讯,Fiddler可以轻松的演示哪些用来生成一个页面,通过统计页 面(就是Fiddler左边的那个大框)用户可以很轻松的使用多选,来得到一个WEB页面的“总重量”(页面文件以及相关js,css等)你也可以很轻松 得看到你请求的某个页面,总共请求了多少次,以及多少字节被转化了。
通过暴露HTTP头,用户可以看见哪些页面被允许在客户端或者是代理端进行缓存。如果要是一个响应没有包含Cache-Control 头,那么他就不会被缓存在客户端。
Fiddler支持断点调试概念,当你在软件的菜单—rules—automatic breakpoints选项选择beforerequest,或者当这些请求或响应属性能够跟目标的标准相匹配,Fiddler就能够暂停Http通讯, 情切允许修改请求和响应。这种功能对于安全测试是非常有用的,当然也可以用来做一般的功能测试,因为所有的代码路径都可以用来演习。

fiddler的基本界面

inspectors tab下有很多查看request或者response的消息。 

raw tab可以查看完整的消息

headers tab 只查看消息中的header

WebForms tab 以直观的界面查看Body值和QueryString值

Cookies tab 以直观的界面查看header中的cookie值

通过陈列出所有的http通信量,fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。

使用statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。

选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。

从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化。


fiddler的左下角有一个命令行工具叫做quickexec,允许你直接输入命令。

常见得命令有:

help  打开官方的使用页面介绍,所有的命令都会列出来

cls    清屏  (ctrl+x 也可以清屏)

select  选择会话的命令

?.png  用来选择png后缀的图片

bpu  截获request


fiddler中设置断点修改request

设置好断点后,你可以修改httprequest 的任何信息,包括host, cookie或者表单中的数据。

设置断点有两种方法:

第一种:打开fiddler 点击rules-> automatic breakpoint  ->before requests(这种方法会中断所有的会话)

如何消除命令呢?  
点击rules-> automatic breakpoint  ->disabled

第二种:  在命令行中输入命令:  bpu (这种方法只会中断)

如何消除命令呢?
在命令行中输入命令 bpu

fiddler中设置断点修改response

第一种:打开fiddler 点击rules-> automatic breakpoint  ->after response  (这种方法会中断所有的会话)

如何消除命令呢?  

点击rules-> automatic breakpoint  ->disabled

第二种:  在命令行中输入命令:  bpuafter (这种方法只会中断)

如何消除命令呢?  

在命令行中输入命令 bpuafter

fiddler中创建autoresponder规则

fiddler 的autoresponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。


fiddler中如何过滤会话

每次使用fiddler, 打开一个网站,都能在fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话. fiddler中有过滤的功能, 在右边的filters tab中,里面有很多选项


补充知识:

1、Cache-Control头的参数设置:
Public 响应会被缓存,并且在多用户间共享。
Private 响应只能够作为私有的缓存,不能再用户间共享。
No-cache 响应不会被缓存
No-store 响应不会被缓存,并且不会被写入到客户端的磁盘里,这也是基于安全考虑的某些敏感的响应才会使用这个。
Max-age=#seconds 响应将会某个指定的秒数内缓存,一旦时间过了,就不会被缓存。
Must-revalidate 响应会被重用来满足接下来的请求,但是它必须到服务器端去验证它是不是仍然是最新的。
阅读(4817) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~