Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。
阅读目录
- Fiddler的基本介绍
- Fiddler的工作原理
- 同类的其它工具
- Fiddler如何捕获Firefox的会话
- Firefox 中使用Fiddler插件
- Fiddler如何捕获HTTPS会话
- Fiddler的基本界面
- Fiddler的统计视图
- QuickExec命令行的使用
- Fiddler中设置断点修改Request
- Fiddler中设置断点修改Response
- Fiddler中创建AutoResponder规则
- Fiddler中如何过滤会话
- Fiddler中会话比较功能
- Fiddler中提供的编码小工具
- Fiddler中查询会话
- Fiddler中保存会话
- Fiddler的script系统
- 如何在VS调试网站的时候使用Fiddler
- Response 是乱码的
Fiddler的基本介绍
Fiddler的官方网站: www.fiddler2.com
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 www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢? 在命令行中输入命令 bpu

看个实例,模拟博客园的登录, 在IE中打开博客园的登录页面,输入错误的用户名和密码,用Fiddler中断会话,修改成正确的用户名密码。这样就能成功登录
1. 用IE 打开博客园的登录界面 http://passport.cnblogs.com/login.aspx
2. 打开Fiddler, 在命令行中输入bpu http://passport.cnblogs.com/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 www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢? 在命令行中输入命令 bpafter,

具体用法和上节差不多,就不多说了。
Fiddler中创建AutoResponder规则
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。
看个实例. 1. 打开博客园首页,把博客园的logo图片保存到本地,并且对图片做些修改。
2. 打开Fiddler 找到logo图片的会话, http://static.cnblogs.com/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系统了 官方的帮助文档: http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp
首先先安装SyntaxView插件,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now... 如下图

安装成功后Fiddler 就会多了一个Fiddler Script tab, 如下图

在里面我们就可以编写脚本了, 看个实例 让所有cnblogs的会话都显示红色。
把这段脚本放在OnBeforeRequest(oSession: Session) 方法下,并且点击"Save script"
if (oSession.HostnameIs("www.cnblogs.com")) {
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"。 这样会自动解压缩。

相关推荐
3. 文档:教程或说明文档,解释如何安装和使用该插件。 4. 测试:可能包含一些测试用例,确保功能的正确性。 5. Python代码模板:预定义的Python代码结构,用于生成特定类型的HTTP请求。 使用Fiddler的这个特性,...
目录 01-Fiddler基本介绍&原理.avi 02-菜单&工具条&会话列表.avi 03-Fidller内建命令使用.avi 04-Fiddler的statistics和Inspectors介绍.avi 05-Fiddler使用AutoResponsor自定义转向.avi ...Fiddler 实用教程.pdf
爬取App和PC客户端数据 《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据全文共34页,当前为第1页。 本章导读 7 第 章 随着Web端的反爬虫方式越来越多,JavaScript调用越来越复杂,爬虫...
这里可以参考PHP数据结构与算法教程以及相关的编程技巧,来设计有效的数据处理流程。 最后,为了提高自身的技术水平和工作效率,建议学习和参考更多关于PHP的官方文档、技术社区以及专业书籍。这样不仅可以提升对...
本教程将围绕"ImportExport.rar"这个压缩包,详细介绍如何利用Fiddler插件和JMeter的特性,实现高效的性能测试脚本编制。 首先,Fiddler是一款强大的HTTP协议调试代理服务器,它能够记录并分析所有HTTP(S)通信,对...
这通常需要利用网络代理或者抓包工具,例如Fiddler、Charles等,拦截和解析网络请求,从中提取出含有Cookie的数据。视频教程将演示这一过程,包括设置代理、监控网络流量以及定位到含有Cookie的信息。 其次,提供的...
描述中给出的链接 "https://blog.csdn.net/tangcv/article/details/120198862" 暗示了一个教程或指南,教导读者如何通过特定的方法抓取wskey。CSDN是中国的一个知名开发者社区,其中的文章通常会提供详尽的步骤和...
本教程将深入讲解浏览器的工作原理,帮助开发者理解网页加载背后的过程。\n\n**浏览器工作原理**\n\n1. **DNS解析**:当用户输入网址时,浏览器首先进行DNS(Domain Name System)解析,将域名转换为IP地址。这一...
为了确认重定向是否成功,我们可以使用浏览器或工具(如Postman、Fiddler等)进行测试。也可以通过下载工具如Flashget,模拟一个请求,查看响应状态码是否为301(永久重定向),这表明搜索引擎会自动更新索引,将旧...
7. **操作视频教程**:`第1种方法操作视频.mp4` 提供了视觉教程,通过观看这个视频,用户可以直观地了解下载步骤,这对于不熟悉命令行操作的用户来说非常有帮助。 8. **文档说明**:`第1种方法.docx` 和 `第2种方法...
8. **测试和调试**:开发过程中,可能使用Postman或Fiddler这样的工具来模拟HTTP请求,测试API的功能。Visual Studio等IDE提供了强大的调试功能,帮助开发者定位和解决问题。 9. **版本控制**:此项目以“master”...
- **文档和教程**:为了帮助用户更好地理解和使用这些工具,通常会提供详细的文档和教程,涵盖如何安装、配置和使用工具包的各个方面。 通过使用COM3D2.Toolkit,开发者和玩家可以提升其在COM3D2平台上的创作效率,...
在调试过程中,我们借助了Fiddler2和Firebug来检查数据的传输情况。 首先,我们创建C#的WCF代码。在Visual Studio 2008中,选择“文件 -> 新建网站”,然后选择“ASP.NET网站”。对于“位置”,选择“HTTP”,并将...
可以通过发送HTTP请求(如Postman或Fiddler)来测试API。在开发环境中,也可以使用内置的Web服务器直接运行API,并通过浏览器访问。 十一、安全性和身份验证 Web API支持多种身份验证和授权机制,包括基本认证、...
你可以使用各种HTTP客户端(如Postman或Fiddler)来测试Web API。通过发送不同的HTTP请求并查看响应,你可以验证API的功能是否正常工作。 九、部署和安全 一旦你的Web API开发完成,你可以将其部署到IIS服务器上。...
学习Java Web服务开发,可以参考官方文档、教程、在线课程和书籍,例如Oracle的JAX-WS和JAX-RS教程、Stack Overflow上的问答、GitHub上的开源项目等。 通过这个“java webservice例子.zip”,你可以动手实践,从...
8. **测试Web API**:我们可以使用Postman、Fiddler这样的工具,或者在代码中通过HttpClient类来发送HTTP请求并接收响应。例如,GET请求可以通过`HttpClient.GetAsync()`,POST请求可以通过`HttpClient....
这通常可以通过在网络浏览器中抓包(如使用Fiddler或Charles等工具)来实现。当你在手机上登录快手账号并扫描二维码时,服务器会返回一个Token,这个Token可以转换成Cookie。这样,你就能模拟登录状态,进行视频上传...
本教程将深入探讨如何利用C#和Java语言进行金蝶K3Cloud接口的开发,以及如何进行生产订单的同步和入库操作。 1. **金蝶云K3Cloud接口基础** - **API概述**:金蝶K3Cloud API提供了丰富的服务,包括但不限于数据...
本教程将深入探讨Web API的使用,通过一系列实例进行详细讲解,确保每个示例都能直接运行并展示效果。本文将主要围绕以下几个核心知识点展开: 1. **Web API的基本概念**: Web API是一种用于构建HTTP服务的框架,...