【测试工具】http协议调试利器fiddler使用教程
转自:http协议调试利器fiddler使用教程http://bbs.phpchina.com/thread-207418-1-1.html
Fiddler真乃神器!它和市面上常见的很多web调试器、http调试器、sniffer都不同!它的原理是在浏览器(或者其他使用http协议的进程)和服务器之间做代理角色,这样所有的通信都要经过它,尽管sniffer和这个原理是一样的,但他们工作的网络层不同。
看上图,你就明白原理了咯,它以8888端口(多么吉利的数字呀!)开本地代理服务器,并且支持https!所以,只要你的http通讯将代理设置为本地8888,fiddler都能帮助你截获数据(最新2.2.0.3以上版本不用你设置,它会自动帮你设置。旧版本可以到ie→工具→internet选型→连接里设置。其他浏览器类似);另外,说他是神器,除了他具有一般web调试器的所有功能之外,其最最大的一个特点是可以中途修改http通信内容。看下图:
嗯,就是这样,提交内容和服务端响应内容都可以被fiddler中断,修改内容后再次继续,在ajax通信的时候,我们可以利用这个功能来调试数据,测试bug!方便至极。
其实,一旦运行fiddler,就相当于跑了一个http服务器一样,你可以在浏览器地址栏输入http://localhost:8888就能看到它的信息了。
下载地址:http://www.fiddler2.com/Fiddler2/version.asp
现在来了解下它的功能。
1.http请求断点调试
如上图,是一个网页的原始请求和响应。现在在规则→自动断点里设置“响应后”,点击提交按钮,现在请求发出,经过代理发送到服务器,服务器返回响应数据道代理,此时由于设置了断点,响应被挂起,我们就能在fiddle中修改响应数据,然后提交,此时响应由代理发送到客户端,就能看到响应数据了。如下图所示:
我们还可以在请求发送前设置断点,修改请求头,fiddler代理将会把修改后的请求发送到服务器,然后读取服务器响应,中转并返回响应数据。
这对于调ajax程序特别有用。你可以中断httpxml请求并修改请求内容。
2.自定义响应AutoResponder
利用fiddler还可以自定义替换响应。这是原始的请求。
设置如下过滤规则:
刷新网页,响应页资源已被修改。
我们还可以使用正则,指定一套规则,把符合规则的把请求替换为我们从网上抓取的数据包。
首先,我们可以把我们从网络中抓取的一张图片保存为dat数据文件
对应的图片资源如下:
导出为dat文件
我们将其导出为59_Response.dat,
设置如下过滤规则:
请求规则:regex:(?insx)^http://.*gravatar.*$ #Match HTTPS-delivered GIFs
替换的响应数据:C:\Users\Admin\Desktop\temp\1\59_Response.dat
刷新网页,效果如下,所有满足规则的响应都被替换:
59_Response.dat文件的内容由http头和实体数据两部分组成。
*下面是详细的过滤规则:
String Literals
Fiddler will match string literals (大小写不敏感)
|
Rule |
Matches |
|
* |
http://www.example.com/Path1/query=example |
|
EXAMPLE |
http://www.example.com/Path1/query=example |
|
path1/ |
http://www.example.com/Path1/query=example |
|
query |
http://www.example.com/Path1/q=Query |
Exact Match(精确匹配)
Fiddler supports an exact, 大小写敏感 match syntax for expressions which begin with exact:
|
Rule |
Matches |
|
http://www.example.com/path |
|
|
http://www.example.com/Path (No Match - mismatched case) |
|
|
http://www.example.com/path/q=Query (No Match - substring different) |
Regular Expressions(正则表达式)
Fiddler supports regular expression syntax for expressions which begin with regex:
|
Rule |
Matches |
|
regex:.* |
http://www.example.com/Path1/query=example |
|
regex:.*\.jpg |
http://www.example.com/Path1/query=foo.jpg&bar |
|
regex:.*\.jpg$ |
http://www.example.com/Path1/query=foo.jpg&bar (No Match - improper ending) |
|
regex:.*\.(jpg|gif|bmp)$ |
http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending) |
|
regex:(?insx).*\.(jpg|gif|bmp)$ |
http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending) |
都是简单的正则表达式,具体含义就不解释了。
3.页面请求统计
在左侧选中要统计的请求,点击右侧统计栏就能看到统计情况了,点击下端的show chart,还能以扇形图的方式直观地展示出来各种请求类型的大小。同时还能查看缓存以及一些请求的状态码,如发现404,那么请求的文件就是不存在了,应该检查路径了。一般这类状态都会以醒目的图标标出。
你还可以禁止缓存,这在浏览器调试时会很有用。你还可以自定义UA头,如我用网站访问糗事百科,则显示的是普通网页,而自定义UA为IPAD后,访问后返回的将是相当于手机访问产生的页面。(这一点,opera浏览器做的就很到位,可以用opera轻易地来访问wap网页)
效果如下:
你还可以在配置文件里添加新的规则,如iphone,诺基亚老爷机等。
这里有各类session前面请求图标所代表的含义。
|
Request is being sent to the server |
|
|
Downloading response from server |
|
|
Request is paused at a breakpoint. |
|
|
Responseis paused at a breakpoint. |
|
|
Request used HTTP HEAD method; response should have no body |
|
|
Request used HTTP CONNECT method; this establishes a tunnel used for HTTPS traffic |
|
|
Response was HTML |
|
|
Response was an image |
|
|
Response was a script |
|
|
Response was Cascading Style Sheet |
|
|
Response was XML |
|
|
Generic Response successful |
|
|
Response was HTTP/300,301,302,303 or 307 redirect |
|
|
Response was HTTP/304: Use cached version |
|
|
Response was a request for client credentials |
|
|
Response was a server error |
|
|
Session was aborted by the client, Fiddler, or the Server. |
4.使用技巧与答疑
你可以在左侧的命令框输入命令,执行某些操作。
?Text 高亮url中含有此字符串的请求
>size Select sessions where response size is greater than sizebytes.
<size Select sessions where response size is less than sizebytes.
=status 状态码
=method 请求方式
@host 包含此主机的请求
bold 标记含有某字符串的请求,如bold /a.jsp
bpafter Break any response where the RequestURI contains the specified string.
bps Break any response where the status code matches.类似的还有bpv(method)
cls or clear :clear the session list.
Select:Select any session where the response Content-Type header contains the specified string.如select image
更多命令可以参照官方文档,这些命令也是可以自定义的。
你还可以把session直接拖到request build里构造请求,也可以完全手工构造。
这样,就可以执行我们自行构造的请求了。更多细节可以参考HTTP RFC文档。
另外,fiddler的可扩展性很强,能够用jscript来扩展它,实现自定义功能。
如果你的fiddler突然不抓包了,可能是你浏览器代理的问题(fiddler没能成功帮你自动配置或者配置后又被你修改了)那看看tools-fiddler options-connections,看一下fidder listens on port的值是不是80,如果不是80而是8888的话,改回来。或者手动配置下代理。
5.相关资源:
http://www.fiddler2.com/fiddler/help/
http://blogs.msdn.com/b/fiddler/
http://blog.csdn.net/powerwolf/archive/2009/06/03/4237735.aspx
【测试工具】http协议调试利器fiddler使用教程的更多相关文章
- WiFi安全测试工具、蹭网利器–WiFiPhisher(转)
读后感:看了一下官方介绍,需要2张无线网卡的支持,其中一张应该是用来影响用户和正常热点的连接,即进行dos攻击,而另外一张可以模拟一个假AP等待用户接入,这种攻击将对物联网和智能家居安防等产品造成很大 ...
- Web调试利器fiddler介绍
转载:http://blog.chinaunix.net/uid-27105712-id-3738821.html 最近在使用fiddler,发现这个真是非常最犀利的web调试工具,笔者这里强烈推荐给 ...
- WEB/HTTP 调试利器 Fiddler 的一些技巧分享
1.原理简介: Fiddler 是目前最强大最好用的 Web 调试工具之一,它能记录所有客户端和服务器的http和https请求, 允许你监视,设置 CGI 请求的断点,甚至修改输入输出数据.同类的工 ...
- Web调试利器fiddler使用
fiddler官网:http://fiddler2.com/ http://wenku.baidu.com/view/053e79d776a20029bd642dc1 http://www.cnblo ...
- Web调试利器fiddler(转)
http://blog.chinaunix.net/uid-27105712-id-3738821.html
- 渗透测试工具Nmap从初级到高级使用教程
本文由阿德马翻译自国外网站,请尊重劳动成果,转载请注明出处,谢谢 Nmap是一款网络扫描和主机检测的非常有用的工具.Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它 ...
- Fiddler(Web/HTTP调试利器)
简述 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的"进出"Fiddler的数据(指cookie.htm ...
- 测试工具Fiddler(一)—— 基础知识
Fiddler基础知识 一.Fiddler是什么? Fiddler是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据.设置断点. ...
- 【转】fiddler-http协议调试代理工具
题目有一些激进.但是在前端界打滚了这么多年,fiddler一直都是陪着我走过来了.它就是一个抓包神奇,代理神器.它的厉害之处,我简单地说一下,希望你们看了以后,能点上32个赞. 1.fiddler为何 ...
随机推荐
- NOI前各种Idea总结以及各种文本乱堆
转载请注明原文地址:https://www.cnblogs.com/LadyLex/p/9227267.html 不过这篇的确没什么*用了转转吧 2018-6-24 关于一类延迟标记(来自UR14 思 ...
- 搜索引擎(Solr-搜索详解)
学习目标 1.掌握SOLR的搜索工作流程: 2.掌握solr搜索的表示语法及查询解析器 3.熟悉solr搜索的JSON格式 API Solr搜索流程介绍 回顾,使用 lucene进行搜索的步骤: So ...
- 【BZOJ】1002:轮状病毒(基尔霍夫矩阵【附公式推导】或打表)
Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图 ...
- 【BZOJ4444】国旗计划
Description 题目链接 Solution 磕了3个半小时没做出来的题,就是全场崩. 首先对于一个人的答案是很好求的,显然是选择左端点在此人区间中,右端点最远(最靠右)的人作为下一个接棒人.因 ...
- suoi16 随机合并试卷 (dp)
算出来每个数被计算答案的期望次数就可以 考虑这个次数,我们可以把一次合并反过来看,变成把一个数+1然后再复制一个 记f[i][j]为一共n个数时第j个数的期望次数,就可以得到期望的递推公式,最后拿f[ ...
- LibreOJ #2325. 「清华集训 2017」小Y和恐怖的奴隶主(矩阵快速幂优化DP)
哇这题剧毒,卡了好久常数才过T_T 设$f(i,s)$为到第$i$轮攻击,怪物状态为$s$时对boss的期望伤害,$sum$为状态$s$所表示的怪物个数,得到朴素的DP方程$f(i,s)=\sum \ ...
- [学习笔记]nim游戏
普通nim游戏: n堆石子,每个人每次对着一堆拿若干个.不能拿者判输. 只有两种情况,先手必胜,先手必败. 先手必胜当且仅当:a1^a2^...^an!=0 证明: 设=x(x不为0),选择最高位和x ...
- eos 源码net_plugin分析
1 net_plugin_impl::connect(connection_ptr c) 函数用于解析地址,内部异步回调async_resolve async_resolve 传递了lambda表达式 ...
- [Java] Servlet工作原理之二:Session与Cookie
(未完成) 一.Cookie与Session的使用简介 1 Cookie Cookie 用于记录用户在一段时间内的行为,它有两个版本:Version 0 和 Version 1,分别对应两种响应头 S ...
- bzoj千题计划104:bzoj1013: [JSOI2008]球形空间产生器sphere
http://www.lydsy.com/JudgeOnline/problem.php?id=1013 设球心(x1,x2,x3……) 已知点的坐标为t[i][j] 那么 对于每个i满足 Σ (t[ ...