fiddler恢复默认设置删除raw 怎么恢复

版权所有 京ICP备号-2
迷上了代码!Posts - 153,
Articles - 1,
Comments - 723
00:19 by 云溪0707, ... 阅读,
Fiddler实战深入研究(二)
Fiddler不能捕获chrome的session的设置
& & 我家里的电脑是使用的是Fiddler4,fiddler目前都可以捕获到chrome的session,但是我公司还是使用的是Fiddler2,因为我是开发人员,很喜欢使用chrome调式代码,所以经常Fiddler捕获不到chrome下session。所以对这个可以做个总结,为了自己以后忘记了或者即将和我一样对chrome下的session捕获不到的同学一个帮助;
& &1. &建议装一个SwitchySharp的Chrome插件,为fiddler创建一个规则,代理到本地的8888端口(fiddler所用的端口)。安装SwitchySharp步骤可以看我这篇博客,如下:
& &2. 安装好后,chrome右上角有一个图标,点击选择 &选项&如下:
进入如下界面,进行如下设置即可!
接着点击保存即可~ 这样在需要的时候可以切换到Fiddler;
如上设置就可以使用了~
理解数据包统计
& & 我们代开Fiddler后开启左下角的 &Capturing&,比如我现在在chrome浏览器下进入淘宝首页后,我们可以使用Fiddler把客户端同服务器端的所有数据包都记录下来,现在我们可以切换到右侧的选项卡中的Statistics中查看数据统计信息;如下所示:
1 中的框含义是:请求总数,请求包大小,响应包大小。
2 中的框含义是:请求的起始时间,响应结束时间,等待时间,握手时间,路由时间,TCP/IP传输时间。
3 中的框含义是:http状态码统计。
4 中的含义是:返回各种类型数据大小统计以及拼图展现。
如下饼图是根据4中的来展现的;如下所示:
请求重定向(AutoResponder)
& 所谓请求在我们前端就是一些基本的css,js,图片等请求,重定向是指页面请求资源文件替换成其他需要替换成的文件。
& 比如我们现在需要调式线上一个js或者css文件等,我们可以使用fiddler捕获这个文件的请求,然后复制线上一份文件(比如JS或者css)代码放到本地,然后在本地的文件(JS或者css)修改完后,替换线上的文件来调式,当一切都好了话,我们可以直接把代码提交到服务器上即可;如下所示:
如上:Enable automatic responses复选框的含义是:控制是否激活AutoResponder选项卡,如果没有选中该选项,选项卡上的其他选项就不可选。
Unmatched& requests passthrough 复选框的含义是: 如果选中该选项,不匹配的请求会正常发送到服务器,如果没有选中该选项,Fiddler会为所有和该规则完全不匹配的HTTP请求生成HTTP/404 Not Found响应,比如我现在不勾选它;如下所示:
那么我现在再来访问淘宝网,就访问不了,提示如下所示:
Enable Latency的含义是:控制匹配某个规则的请求时立即执行,还是延迟Latency字段中所指定的毫秒数。如果没有选中该选项,Latency字段就不会显示,使用这个选项可以更准确地模拟现实中的服务器响应,取消该选项可以提升性能。如下所示:
我们也可以点击右键进行毫秒数设置它,如下:
在下方的Rule Editor选项卡中可以调整上面的请求替换,如下:
第一个下拉框是指 需要替换的文件,第二个下拉框a.js是替换上面的下拉框的文件;当然我们不一定要这样替换,如果我们正则非常好的话,我们可以使用正则替换需要替换的文件。当我们点击 save后即可替换。
Composer选项卡
Composer选项卡支持手动构建和发送HTTP,HTTPS和FTP请求,我们还可以从web session列表中拖曳session,把它放到composer选项卡中,当我们点击Execute按钮,把请求发送到服务器端。
Composer选项卡是由4个子选项卡组成的,如下所示:
其中Scratchpad选项卡不用的;
我们先来看看Options选项卡中 Request Options的复选框中的含义如下:
Inspect& Session& 请求执行后,Inspectors选项卡会被激活,可以查看请求结果。
Fix Content-Length header*& 该选项控制Composer是否会自动添加或修改Content-Length请求头,表示请求体的大小。在很多情况下,缺少适当的Content-Length头的请求会导致http请求响应出错。
Follow Redirects*& 该选项控制Composer是否会自动使用响应的Location头,遵循HTTP/3xx重定向,如果选中该选项,Composer在失败之前最多会执行10次重定向。
Automatically Authenticate* &该选项控制composer是否会自动响应服务器的HTTP/401或HTTP/407认证需求。
Tear off button& 该按钮会从主Fiddler窗口删除Composer,并把它作为独立的悬浮窗口打开。如果选中Inspect&& Session选项,该选项就非常有用,因为它支持同时查看Composer和Inspector选项卡;如下所示:
上面的以*标示的选项只适用于使用Parsed选项卡发送的请求,从Raw选项卡发送的请求不支持这些选项。
Raw选项卡一般很少使用。
比如我现在获取到淘宝首页的请求,我们可以使用fiddler中的composer选项卡来重新调用一次该请求,如下所示:
我们双击该左侧的请求,到右侧Inspectors选项卡来查看如下:
我们可以点击下面的2个按钮,一个是展开,一个是收缩来查看json数据,如下所示:
Composer选项卡总体介绍如下:
Composer使用场景如下:
比如我们开发想测试post请求接口,我们都知道浏览器请求只能是get请求,所以无法使用浏览器来测试,因此我们可以使用Composer构造post请求,点击execute发送请求。
Filters选项卡断点调式
首先我们可以使用一下左侧的session,我有时候觉得filter很好玩,我就不经意间选中左侧任意一条session,然后右键也看到有filter这个选项,然后看到他们的子菜单也有很多项,我就好奇分别点击某一项后;如下所示:
做完hide所有子菜单后呢,我就再刷新淘宝页面,或者百度页面或者博客园或者任何一个页面,结果fiddler都捕获不到请求,但是偶尔会出现几条请求,但是这明显不是我们想要的,如下所示:
这是什么情况呢?我们接着再看下fiddler左侧的底部如下:
看到我们之前的右键点击子菜单后的每一项,现在我们只需要选择某一项后右键即可删除当前选中的项,我现在一个个右键,就把所有的删除掉后,我再刷新淘宝页面,就可以捕获到所有的请求了,如下所示:
下面让我们来系统的学习Filters选项卡吧!界面图如下所示:
选中Filters选项卡左上方的Use& Filters复选框后,就可以使用其中随后给出的过滤器对流量进行过滤了;
选项卡右上方的Actions按钮支持把当前选中的过滤器作为过滤集,加载之前保存的过滤集,并对之前扑捉到的数据流应用当前过滤规则,如下:
Host Filter下拉框支持标示或隐藏在随后的文本框中指定的域名下的数据流;比如如下下拉框如下:
Not Host Filter 的含义是不过滤host的请求;
Hide the following Hosts的含义是:隐藏下面文本框中指定的域名下的数据流;如下所示:
Show only the following Hosts的含义是:只显示下面文本框指定的域名的数据流,如下所示:
如上我访问的是淘宝网,那么只会显示对和的数据流;如上所示:
注意:文本框不会自动通过通配符匹配子域名。这意味着如果你设置了 show only the following hosts , 并且在文本框中只写了, 那么将无法看到或者域名下的所有数据流,如下所示:
我们需要添加通配符& *.,就可以看到所有子域名下的数据流;如下所示:
如果我们想查看根目录下下的数据流,可以把通配符改成如下 *即可,这样就可以包含所有域名以结束的数据流。前面不要加点;如下所示:
客户端进程(Client Process)
进程过滤器控制显示那个进程的数据流。正在运行的应用进程和Fiddler在相同的主机时,Fiddler才能判断出是那个进程发出的哪个请求;
下拉框 Show only traffic from的列表中包含了系统中当前正在运行的所有进程,如下所示:
如果我们选中上面的某个进程的话,就会只显示该进程下的数据流,比如我现在选中的是淘宝进程;
Show only Internet Explorer 选项只显示进程名称以IE开头或请求的User-Agent头包含MSIE的数据流;
Hide traffic from Service Host选项会隐藏来自进程svchost.exe的数据流,svchost.exe进程是个系统进程,会同步RSS Feeds以及执行其他后台网络活动。其选项一般用的不多。
请求头Request Headers
通过这个选项,你可以添加或删除HTTP请求头,也可以标示包含某些请求头的请求。
Show& only& if URL contains:的含义是支持基于URL显示某些请求;可以使用前缀EXACT来限定大小写敏感;
Hide if URL contains 和上面的是相反的含义,也就是隐藏的意思;
Flag& requests with header选项支持指定某个http请求头名称,如果在web session列表中存在该请求头,会加粗显示该session;
Delete request header 支持指定某个HTTP请求头名称,如果包含该请求头,会删除该请求头;
set request header选项支持创建一个指定了名称和取值的HTTP请求头,或将HTTP请求头更新为指定取值。
断点Breakpoints
Fiddler提供了断点调式功能,session在执行过程中,有2个可能执行中断的时间点;
从客户端读到请求后,在请求被发送到服务器端之前。
在服务器端返回响应之后,在响应返回客户端之前。
当程序在请求中断点停止执行时,你可以任意修改该请求,包括URL,headers或body,我们还可以不发送该请求到服务器端,我们可以直接自定义数据返回给客户端,同样,当程序在响应断点停止执行时,我们也可以任意修改响应的内容,包括headers或body。我们先来操作一下如下:
一: 菜单栏 Rules &》 Automatic Breakpoints &》 Before Requests(请求被发送到服务器端之前);或者 After Responses(响应返回客户端之前)
比如我现在后台系统,我点击查询按钮,需要发送一个POST请求,如下:
现在我们再来看看Fiddler中截取请求,如下所示:
如上,红色的小图标是被中断的会话,我们可以左键双击两下,进入Inspectors选项卡,如下所示:
我们在Inspectors &》 WebForms选项卡中可以看到请求中携带的参数如上,我们可以任意修改参数名值对,我们也可以任意添加参数,或者增加cookies或者headers等等,现在我们来看看浏览器中请求响应了没有?如下所示:
现在我们可以再点击黄色小图标 Break on Response 小按钮,如下所示:
可以看到,请求直接返回数据,现在黄色小图标是不能点击的按钮,现在我们可以来修改响应的内容,模拟请求返回,我们也可以自定义返回的json数据,或者我们以后来模拟get或者post请求,我们不需要服务器端(比如php)返回对应JSON数据,我们完全可以使用Fiddler来模拟数据,发送一个空的请求,然后使用fiddler来截取,自己自定义返回json数据,我们可以自定义返回的数据,如下所示,我是修改返回的内容如下所示:
当我们点击Run to Completion按钮后,在浏览器端可以响应数据,接着如下:
然后我们在页面上可以看到修改返回的数据内容如下:
如上是整个断点调式的过程。
如下所示:
当然我们可以在filters里面的选项勾选也可以进行调式如下:
断点选项框支持对包含给定属性的请求或响应设置断点;
Break request on POST选项含义是:会为所有POST请求设置断点;
Break request on GET with query string的含义是:会为所有方法为GET且URL中包含了给定查询条件的请求设置断点。
Break on XMLHttpRequest的含义是:对所有能够确定是通过XMLHTTPRequest对象发送的请求设置断点,由于从数据流上无法判断该请求是否通过XMLHTTPRequest对象发送,因此该方法是通过查找请求头是否为X-Requested-With实现的。
Break response on Content-Type选项的含义是:会为所有响应头Content-Type中包含了指定文本的响应设置响应断点。
响应状态码 Response Status Code
如下所示:
我们可以通过这些选项,基于响应状态码来过滤session;含义如下:
Hide success(2xx)的含义是:会隐藏状态码在200到299之间(包含200和299)的响应。
Hide non-2xx的含义是:会隐藏状态码不在200到299之间的响应。
Hide Authentication demands(401,407)的含义是:会隐藏状态码是401和407的响应,这些响应需要用户进一步确认证书。
Hide redirects的含义是:会隐藏对请求进行重定向的响应。
Hide Not Modified(304) 会隐藏状态条件中状态码为304的响应。
响应类型和大小
通过如上选项,我们可以控制在Web sessions列表中显示那些类型的响应,并堵塞符合某些条件的响应。
我们先来看看上面的下拉框有哪些选项;如下所示:
Show all Content-Types的含义是 不过滤;
Show only IMAGE/* 的含义是 显示Content-Type头是图像类型的Session。
Show& only HTML 的含义是 隐藏Content-Type头不是HTML类型的Session。
Show only Text/css 含义是 隐藏Content-Type头不是text/css类型的Session。
Show only Scripts 含义是 隐藏Content-Type头不是Scripts类型的Session。
Show only xml 含义是 隐藏Content-Type头不是xml类型的Session。
Show only JSON 含义是 隐藏Content-Type头不是JSON类型的Session。
Hide IMAGE/* &含义是 隐藏Content-Type头不是图像类型的Session。
Hide smaller than选项隐藏响应体小于指定的字节数的响应。
Hide larger than选项隐藏响应体大于指定字节数的响应。
Time HeatMap复选框会基于服务器返回给定响应所需要的时间为每个session设置背景颜色。
下面的不一一介绍具体的含义了,一般情况下我们是用不到的,具体的含义看英文也大概知道点,对此这边不一一介绍了;
Fiddler 中的Stave插件
Stave是一个Fiddler扩展插件,让Fiddler能将URL映射到本地目录,实现批量文件自动响应。
Fiddler自带的AutoResponder每条自动响应规则只能对应一个本地文件, 在文件数目较多的时候,使用起来很不方便,往往需要部署到本地web服务,有了Stave插件(扩展),一个URL匹配可以对应一个本地目录,URL规则也支持通配符,前端调试方便多了。
除支持URL映射到目录之外,还支持URL到URL的替换。
Stave扩展并不影响原本的AutoResponder功能,两者可以共同起作用。
一:首先安装Stave插件:
安装完成后重新启动下Fiddler,可以看到右侧tab选项卡多了一个stave选项如下:
我们先可以看看本身的实列如上2个,第一个是替换目录的,第二个是替换单个文件;我们接下来看看他们的如何配置的,我们点击右键 &》 编辑& 打开如下编辑页面:
可以看到如上配置;我们先来实践下吧!
比如我现在的项目,通过Fiddler截取请求如下:
现在我需要的是 我想把 172.16.28.183:8080/jgz/statics/easyui 这个路径下的所有js文件批量替换成我本地文件中的js,如下我本地的目录文件:
现在我们来看看配置如下:
& 1. 首先点击右侧 右键 -& 添加
弹出添加规则如下:
把要匹配的目录填到匹配输入框里面去,替换为 填写本地的文件目录 如上面的;点击&确定&按钮即可;
现在的js文件都替换掉了,但是有时候我们需要替换单独的css文件,或者单独的js文件,我们可以在AutoResponder选项卡中进行替换,如下所示:
如上即可~ stave插件和AutoResponder选项卡搭配使用批量替换目录;
如上:总结了一些基本常用到Fiddler插件及知识点,以后有机会还会更多的分享自己了解这方面的东西,还会有下文的,如果分享不好,请多多理解!如果有帮助的话,可以点击下面的推荐按钮~ 不胜感谢~~WCF Web API支持多个宿主环境:自宿主(windows服务或者控制台)和IIS宿主(asp.net webform/mvc)。这个入门文章主要演示在ASP.NET MVC3网站宿主,主要演示如何在一个Web API上允许更新:
如何检索一个特定项的资源
如何在API上启用HTTP POST, PUT和DELETE方法
如何通过HTML表单发送一个POST到API
这篇入门文章的场景是允许客户端添加、删除和更新系统的联系人。
1、解压启动器代码
要快速开始练习,请到下载代码,下载解压后,打开Start目录下的ContactManager项目。代码和的主要区别是实体代码重构到一个内存 ContactManagerRepository。
public interface IRepository&T&
T Find(int id);
IQueryable&T& FindAll();
void Add(T entity);
void Remove(int id);
void Save();
using Susing System.Collections.Gusing System.Lusing ContactManager.Rnamespace ContactManager.Infrastructure{
public abstract class InMemoryRepository&T& : IRepository&T& where T:new()
protected List&T&
protected int nextId;
static InMemoryRepository&T&
static object lockObject = new object();
public T Find(int id)
return entities.SingleOrDefault(e =& IsEntityWithId(e, id));
public IQueryable&T& FindAll()
return entities.AsQueryable();
public void Add(T entity)
OnAdd(entity, nextId++);
entities.Add(entity);
public void Remove(int id)
entities.RemoveAll(e =& IsEntityWithId(e, id));
public void Save()
throw new InvalidOperationException();
protected abstract bool IsEntityWithId(T contact, int id);
protected abstract void OnAdd(T entity, int newId);
using ContactManager.Iusing ContactManager.Rnamespace ContactManager.Repositories{
public interface IContactRepository : IRepository&Contact&
2、启用检索一个单一的资源并和HttpResponseException协同工作
目前我们的API只支持获取一个联系人集合。另一个通常的场景是通过一个URI返回一个单一的资源,如果找不到相关的资源应该返回一个404状态码。
打开ContactsAp.cs
复制以下方法
[WebGet(UriTemplate=&{id}&)]public Contact GetItem(int id){
var contact = repository.Find(id);
if (contact == null)
throw new HttpResponseException(HttpStatusCode.NotFound);
注意GET方法接受一个ID参数映射到{id} uri模板参数。如果你的请求API是 的ID将被设置为1,Web API支持将模板参数自动转换为原生类型int。
如果联系人不存在,就抛出HttpResponseException 并设置状态码
编译并运行(F5)
打开Fiddler并在“Request builder”栏输入地址“http://localhost:9000/api/contacts/1”
拷贝以下内容到header
Accept: application/json
运行执行按钮,Contract 1按json格式返回
HTTP/1.1 200 OKServer: ASP.NET Development Server/10.0.0.0Date: Tue, 19 Jul :26 GMTX-AspNet-Version: 4.0.30319Content-Length: 35Cache-Control: privateContent-Type: application/ charset=utf-8Connection: Close{&ContactId&:1,&Name&:&Phil Haack&}
3、添加对POST的支持
以下代码是添加一个新的Post方法,添加一个新的Contract
[WebInvoke(UriTemplate = &&, Method=&POST&)]public Contact Post(Contact contact){
repository.Add(contact);
上面代码里用到了WebInvokeAttribute,对于所有的HTTP GET以外的其他方法,使用此属性。 该方法指定的参数的必须是大写的。
4、以Json格式发送数据
Web Api允许以多个格式发送内容,下面是使用fiddler发送json的POST
启动Fiddler并切换到“Request Builder”
选择“POST”方法,输入以下Uri: 
拷贝以下内容到“Request Headers”
Accept: application/jsonContent-Type: application/json
拷贝以下内容到“Request Body”
{&Name&:&New Person1&}
按下“Execute”,返回Json格式的新的Contact ,id为7
HTTP/1.1 200 OKServer: ASP.NET Development Server/10.0.0.0Date: Tue, 19 Jul :57 GMTX-AspNet-Version: 4.0.30319Content-Length: 36Cache-Control: privateContent-Type: application/ charset=utf-8Connection: Close{&ContactId&:7,&Name&:&New Person1&}
5、以XML格式发送数据
以xml方式发布,需要替换“Request Headers”为以下内容Content-Type: application/xmlAccept: application/xml
替换“Request Body”为以下内容
&Name&New Person2&/Name&&/Contact&
按下“Execute”,然后双击左窗格中的结果,选择“RAW”标签,返回的结果应该是XML,并显示创建了ID为8的一个联系人
HTTP/1.1 200 OKServer: ASP.NET Development Server/10.0.0.0Date: Tue, 19 Jul :50 GMTX-AspNet-Version: 4.0.30319Content-Length: 105Cache-Control: privateContent-Type: application/ charset=utf-8Connection: Close&?xml version=&1.0& encoding=&utf-8&?&&Contact&&ContactId&8&/ContactId&&Name&New Person2&/Name&&/Contact&
6、从一个简单的HTML表单发送内容
Web API包含从HTML表单的内容发送的直接支持,下面,你添加一个ContactsContrller和相应的View,通过一个HTML表单向Web API发送请求并创建一个Contact
右键单击项目并选择添加Contrller,输入名字为ContactsController 并按下添加拷贝以下代码到ContactsController
public ActionResult Create(){
return View();}
右键Create方法选择 Add-〉New View,并按下”Enter”
打开“Create.cshtml”并把以下代码贴进去
Layout =}&!DOCTYPE html&&html&&head&
&title&Create new Contact&/title&&/head&&body&
&h1&Create new Contact&/h1&
&form method=&post& action=&/api/contacts& id=&addContact&
enctype=&application/x-www-form-urlencoded&&
&input type=&text& name=&Name& /&
&td colspan=&2& align=&center&&
&input type=&submit& value=&Add& /&
&/form&&/body&&/html&
运行项目,在浏览器里输入 加载创建Contact页面,输入“NewContact”按下Create
创建的Contact被返回
7、添加PUT的支持
添加对PUT和DELETE的支持是非常容易的,像POST一样也是使用WebInvoke 制定PUT和DELETE
打开ConactApi.cs把以下代码拷进去
[WebInvoke(UriTemplate =&{id}&, Method = &PUT&)]public Contact Put(Contact contact, int id){
var existingContact = repository.Find(id);
if (existingContact == null)
throw new HttpResponseException(HttpStatusCode.NotFound);
existingContact.Name = contact.N
return existingC}
和DELETE类似,PUT方法在没有找到Contact的情况下,返回一个404状态码
编译运行(F5)
启动Fiddler,并切换到“Request Builder”,设置方法为PUT,输入,在Request Header输入以下内容
Content-Type: application/json
拷贝以下内容到“Request Body”
&Name&:&Updated Contact&}
按下“Execute”
被更新的contact返回,结果如下表明PUT成功
HTTP/1.1 200 OKServer: ASP.NET Development Server/10.0.0.0Date: Tue, 19 Jul :28 GMTX-AspNet-Version: 4.0.30319Content-Length: 40Cache-Control: privateContent-Type: application/ charset=utf-8Connection: Close{&ContactId&:1,&Name&:&Updated Contact&
8、添加对DELETE的支持
切换到ContactApi.cs并复制以下内容:
[WebInvoke(UriTemplate = &{id}&, Method = &DELETE&)]public Contact Delete(int id){
var contact = repository.Find(id);
if (contact == null)
throw new HttpResponseException(HttpStatusCode.NotFound);
repository.Remove(id);
运行项目(F5)
在Fiddler 上把方法切换为DELETE,URL 为输入,结果如下表明PUT成功
HTTP/1.1 200 OKServer: ASP.NET Development Server/10.0.0.0Date: Tue, 19 Jul :23 GMTX-AspNet-Version: 4.0.30319Content-Length: 40Cache-Control: privateContent-Type: application/ charset=utf-8Connection: Close{&ContactId&:1,&Name&:&Updated Contact&}
切换Fiddler的方法为GET,然后执行,返回状态码为404
HTTP/1.1 404 Not Found
Server: ASP.NET Development Server/10.0.0.0
Date: Tue, 19 Jul :08 GMT
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Length: 0
Connection: Close
再次切换方法为DELETE,然后执行,也返回状态码404
总结:在这篇入门文章里我们学习了以下内容:
如何添加检索一个单一的资源
如何设置一个方法返回一个404  处理异常情况下的HTTP 响应。
如何支持POST和URL编码形式。
如何支持PUT和DELETE。
最新版本参考:
阅读(...) 评论()6310人阅读
other(7)
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。
Fiddler的基本介绍
Fiddler的官方网站:&
Fiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料。
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展
你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法. 你越使用Fiddler,就越能帮助你了解HTTP协议.
Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具
Fiddler的工作原理
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler.
同类的其它工具
同类的工具有: httpwatch, firebug, wireshark
Fiddler 如何捕获Firefox的会话
能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为127.0.0.1:8888就可以监听数据了。
Firefox 上通过如下步骤设置代理
点击: Tools -& Options,& 在Options 对话框上点击Advanced tab - & network tab -& setting.
Firefox 中安装Fiddler插件
修改Firefox 中的代理比较麻烦, 不用fiddler的时候还要去掉代理。 麻烦
推荐你在firefox中使用fiddler hook 插件, 这样你非常方便的使用Fiddler获取firefox中的request 和response
当你安装fiddler后, 就已经装好了Fiddler hook插件, 你需要到firefox中去启用这个插件
打开firefox&& tools-&Add ons -& Extensions 启动 FiddlerHook
Fiddler如何捕获HTTPS会话
默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler& Tool-&Fiddler Options-&HTTPS tab
&选中checkbox, 弹出如下的对话框,点击&YES&
点击&Yes& 后,就设置好了
Fiddler的基本界面
&看看Fiddler的基本界面
Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下图
Fiddler的HTTP统计视图
通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。
选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化
QuickExec命令行的使用
Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
常见得命令有
help& 打开官方的使用页面介绍,所有的命令都会列出来
cls&&& 清屏& (Ctrl+x 也可以清屏)
select& 选择会话的命令
?.png& 用来选择png后缀的图片
bpu& 截获request
Fiddler中设置断点修改Request
&Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法
第一种:打开Fiddler 点击Rules-& Automatic Breakpoint& -&Before Requests(这种方法会中断所有的会话)
如何消除命令呢?& 点击Rules-& Automatic Breakpoint& -&Disabled
第二种:& 在命令行中输入命令:& bpu && (这种方法只会中断)
如何消除命令呢?& 在命令行中输入命令 bpu
看个实例,模拟博客园的登录, 在IE中打开博客园的登录页面,输入错误的用户名和密码,用Fiddler中断会话,修改成正确的用户名密码。这样就能成功登录
1. 用IE 打开博客园的登录界面& /login.aspx
2. 打开Fiddler,& 在命令行中输入bpu /login.aspx
3. 输入错误的用户名和密码 点击登录
4. Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion 如下图所示。
5. 结果是正确地登录了博客园
Fiddler中设置断点修改Response
当然Fiddler中也能修改Response
第一种:打开Fiddler 点击Rules-& Automatic Breakpoint& -&After Response& (这种方法会中断所有的会话)
如何消除命令呢?& 点击Rules-& Automatic Breakpoint& -&Disabled
第二种:& 在命令行中输入命令:& bpuafter && (这种方法只会中断)
如何消除命令呢?& 在命令行中输入命令 bpafter,
具体用法和上节差不多,就不多说了。
Fiddler中创建AutoResponder规则
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。
看个实例. 1. 打开博客园首页,把博客园的logo图片保存到本地,并且对图片做些修改。
2. 打开Fiddler 找到logo图片的会话, /images/logo_2012_lantern_festival.gif,& 把这个会话拖到AutoResponer Tab下
3. 选择Enable automatic reaponses 和Unmatched requests passthrough
4. 在下面的Rule Editor 下面选择 Find a file... 选择本地保存的图片.& 最后点击Save 保存下。
5.& 再用IE博客园首页, 你会看到首页的图片用的是本地的。
Fiddler中如何过滤会话
每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话. Fiddler中有过滤的功能, 在右边的Filters tab中,里面有很多选项, 稍微研究下,就知道怎么用。
Fiddler中会话比较功能
选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了 (当然需要你安装WinDiff)
Fiddler中提供的编码小工具
点击Fiddler 工具栏上的TextWizard,& 这个工具可以Encode和Decode string.
Fiddler中查询会话
用快捷键Ctrl+F 打开 Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示
Fiddler中保存会话
有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。& 保存会话的步骤如下:
选择你想保存的会话,然后点击File-&Save-&Selected Sessions
Fiddler的script系统
Fiddler最复杂的莫过于script系统了 官方的帮助文档:
首先先安装SyntaxView插件,Inspectors tab-&Get SyntaxView tab-&Download and Install SyntaxView Now... 如下图
安装成功后Fiddler 就会多了一个Fiddler Script tab, 如下图
在里面我们就可以编写脚本了, 看个实例 让所有cnblogs的会话都显示红色。
把这段脚本放在OnBeforeRequest(oSession: Session) 方法下,并且点击&Save script&
if (oSession.HostnameIs(&&)) {
oSession[&ui-color&] = &red&;
这样所有的cnblogs的会话都会显示红色
如何在VS调试网站的时候使用Fiddler
我们在用visual stuido 开发ASP.NET网站的时候也需要用Fiddler来分析HTTP, 默认的时候Fiddler是不能嗅探到localhost的网站。不过只要在localhost后面加个点号,Fiddler就能嗅探到。
例如:原本ASP.NET的地址是 http://localhost:2391/Default.aspx,& 加个点号后,变成 http://localhost.:2391/Default.aspx 就可以了
第二个办法就是在hosts文件中加入& 127.0.0.1& localsite
如何你访问http://localsite:端口号&& 。& 这样Fiddler也能截取到了。
Response 是乱码的
有时候我们看到Response中的HTML是乱码的, 这是因为HTML被压缩了, 我们可以通过两种方法去解压缩。
1. 点击Response Raw上方的&Response is encoded any may need to be decoded before inspection. click here to transform&
2. 选中工具栏中的&Decode&。& 这样会自动解压缩。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:36095次
排名:千里之外
原创:23篇
(2)(4)(4)(1)(2)(2)(7)(8)(2)

我要回帖

更多关于 fiddler raw 乱码 的文章

 

随机推荐