`
gigi_112
  • 浏览: 114444 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】fiddler教程

阅读更多

Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。

阅读目录

  1. Fiddler的基本介绍
  2. Fiddler的工作原理
  3. 同类的其它工具
  4. Fiddler如何捕获Firefox的会话
  5. Firefox 中使用Fiddler插件
  6. Fiddler如何捕获HTTPS会话
  7. Fiddler的基本界面
  8. Fiddler的统计视图
  9. QuickExec命令行的使用
  10. Fiddler中设置断点修改Request
  11. Fiddler中设置断点修改Response
  12. Fiddler中创建AutoResponder规则
  13. Fiddler中如何过滤会话
  14. Fiddler中会话比较功能
  15. Fiddler中提供的编码小工具
  16. Fiddler中查询会话
  17. Fiddler中保存会话
  18. Fiddler的script系统
  19. 如何在VS调试网站的时候使用Fiddler
  20. 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"。  这样会自动解压缩。

 

 

 


分享到:
评论

相关推荐

    Fiddler-Request-To-code:Fiddler拖拽自动生成Python代码

    3. 文档:教程或说明文档,解释如何安装和使用该插件。 4. 测试:可能包含一些测试用例,确保功能的正确性。 5. Python代码模板:预定义的Python代码结构,用于生成特定类型的HTTP请求。 使用Fiddler的这个特性,...

    Fiddler入门到进阶视频.zip

    目录 01-Fiddler基本介绍&原理.avi 02-菜单&工具条&会话列表.avi 03-Fidller内建命令使用.avi 04-Fiddler的statistics和Inspectors介绍.avi 05-Fiddler使用AutoResponsor自定义转向.avi ...Fiddler 实用教程.pdf

    《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据.pptx

    爬取App和PC客户端数据 《Python网络爬虫技术案例教程》PPT课件(共10单元)七单元爬取APP和PC客户端数据全文共34页,当前为第1页。 本章导读 7 第 章 随着Web端的反爬虫方式越来越多,JavaScript调用越来越复杂,爬虫...

    PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析

    这里可以参考PHP数据结构与算法教程以及相关的编程技巧,来设计有效的数据处理流程。 最后,为了提高自身的技术水平和工作效率,建议学习和参考更多关于PHP的官方文档、技术社区以及专业书籍。这样不仅可以提升对...

    ImportExport.rar

    本教程将围绕"ImportExport.rar"这个压缩包,详细介绍如何利用Fiddler插件和JMeter的特性,实现高效的性能测试脚本编制。 首先,Fiddler是一款强大的HTTP协议调试代理服务器,它能够记录并分析所有HTTP(S)通信,对...

    京东appck抓取软件,带步骤和教程,抢购秒杀必备,一般提取出来的有效期都在几个月以上

    这通常需要利用网络代理或者抓包工具,例如Fiddler、Charles等,拦截和解析网络请求,从中提取出含有Cookie的数据。视频教程将演示这一过程,包括设置代理、监控网络流量以及定位到含有Cookie的信息。 其次,提供的...

    wskey.zip 抓取wskey

    描述中给出的链接 "https://blog.csdn.net/tangcv/article/details/120198862" 暗示了一个教程或指南,教导读者如何通过特定的方法抓取wskey。CSDN是中国的一个知名开发者社区,其中的文章通常会提供详尽的步骤和...

    web前端开发教程.doc

    本教程将深入讲解浏览器的工作原理,帮助开发者理解网页加载背后的过程。\n\n**浏览器工作原理**\n\n1. **DNS解析**:当用户输入网址时,浏览器首先进行DNS(Domain Name System)解析,将域名转换为IP地址。这一...

    IIS重定向使用图文教程

    为了确认重定向是否成功,我们可以使用浏览器或工具(如Postman、Fiddler等)进行测试。也可以通过下载工具如Flashget,模拟一个请求,查看响应状态码是否为301(永久重定向),这表明搜索引擎会自动更新索引,将旧...

    最新钉钉直播回放视频下载

    7. **操作视频教程**:`第1种方法操作视频.mp4` 提供了视觉教程,通过观看这个视频,用户可以直观地了解下载步骤,这对于不熟悉命令行操作的用户来说非常有帮助。 8. **文档说明**:`第1种方法.docx` 和 `第2种方法...

    WebAPI-ProductsApp:Web API 教程的示例代码

    8. **测试和调试**:开发过程中,可能使用Postman或Fiddler这样的工具来模拟HTTP请求,测试API的功能。Visual Studio等IDE提供了强大的调试功能,帮助开发者定位和解决问题。 9. **版本控制**:此项目以“master”...

    Tutorial Talking to WCF with Flex 3 via JSON or XML

    在调试过程中,我们借助了Fiddler2和Firebug来检查数据的传输情况。 首先,我们创建C#的WCF代码。在Visual Studio 2008中,选择“文件 -> 新建网站”,然后选择“ASP.NET网站”。对于“位置”,选择“HTTP”,并将...

    COM3D2.Toolkit:COM3D2 WARCWARP工具包

    - **文档和教程**:为了帮助用户更好地理解和使用这些工具,通常会提供详细的文档和教程,涵盖如何安装、配置和使用工具包的各个方面。 通过使用COM3D2.Toolkit,开发者和玩家可以提升其在COM3D2平台上的创作效率,...

    Web Api使用详解(全部实例讲解,可直接运行看效果)2019

    可以通过发送HTTP请求(如Postman或Fiddler)来测试API。在开发环境中,也可以使用内置的Web服务器直接运行API,并通过浏览器访问。 十一、安全性和身份验证 Web API支持多种身份验证和授权机制,包括基本认证、...

    Web Api使用详解(全部实例讲解,可直接运行看效果)_《0528》.rar

    你可以使用各种HTTP客户端(如Postman或Fiddler)来测试Web API。通过发送不同的HTTP请求并查看响应,你可以验证API的功能是否正常工作。 九、部署和安全 一旦你的Web API开发完成,你可以将其部署到IIS服务器上。...

    java webservice例子.zip

    学习Java Web服务开发,可以参考官方文档、教程、在线课程和书籍,例如Oracle的JAX-WS和JAX-RS教程、Stack Overflow上的问答、GitHub上的开源项目等。 通过这个“java webservice例子.zip”,你可以动手实践,从...

    .net Web Api使用详解(全部实例讲解,可直接运行看效果)

    8. **测试Web API**:我们可以使用Postman、Fiddler这样的工具,或者在代码中通过HttpClient类来发送HTTP请求并接收响应。例如,GET请求可以通过`HttpClient.GetAsync()`,POST请求可以通过`HttpClient....

    易语言-快手网页版上传视频易语言

    这通常可以通过在网络浏览器中抓包(如使用Fiddler或Charles等工具)来实现。当你在手机上登录快手账号并扫描二维码时,服务器会返回一个Token,这个Token可以转换成Cookie。这样,你就能模拟登录状态,进行视频上传...

    金蝶云K3Cloud接口

    本教程将深入探讨如何利用C#和Java语言进行金蝶K3Cloud接口的开发,以及如何进行生产订单的同步和入库操作。 1. **金蝶云K3Cloud接口基础** - **API概述**:金蝶K3Cloud API提供了丰富的服务,包括但不限于数据...

    Web Api使用详解(全部实例讲解,可直接运行看效果)(亲测可用)

    本教程将深入探讨Web API的使用,通过一系列实例进行详细讲解,确保每个示例都能直接运行并展示效果。本文将主要围绕以下几个核心知识点展开: 1. **Web API的基本概念**: Web API是一种用于构建HTTP服务的框架,...

Global site tag (gtag.js) - Google Analytics