Fiddler 学习笔记

Fiddler是啥?

  百度百科里是这样介绍它的 - “Fiddler是一个web调试代理。它能够记录所有客户端和服务器间的http请求,允许你监视,设置断点,甚至修改输入输出数据,fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。”

  所以无论你是从事什么开发,哪种语言,只要你想了解HTTP,这个工具就值得你去了解,而且更重要的一点,这个工具是免费的。

  Fiddler就是以代理服务器的方式,监听系统的网络数据流动。

  启动Fiddler后,所发生的网络数据流通过Fiddler进行中转,就可以看到HTTP/HTTPS数据流的信息,我们就可以通过对这些信息加以分析。Fiddler还提供了清除IE缓存、请求构造器、文本转换工具等等一系列工具,对前端开发工作很有价值。

  

Fiddler的安装与下载:

  Fiddler下载地址http://www.fiddler2.com/fiddler2/

根据本机安装的.net framework2.0还是4.0决定是下哪个版本。

.net framework 2.0对应下载fiddler2  

.net framework 4.0 对应下载 fiddler 4


 假如你是早期的XP版本的系统在安装的过程中会提示你下载.net framework 2.0或以上版本 。安装过程很简单,直接下一步就好了,记得一定要先安装好.net framework ,再安装 fiddler ,就不再详细介绍了。

监听开关 - 只有两种状态,用的时候就开着,不用就让丫休息。capturing表示捕捉状态

  监听类型 - 四种状态分别对应 监听所有请求;监听浏览器请求,监听非浏览器请求,和全部隐藏(Hide All)

  命令行 - 就不作介绍了,难者不会,会者不难。我就属于前者,悲剧呀...

  请求列表 - 请求列表的信息分别有 结果(Result),协议(Protocol),主机名(Host),网页地址(URL),内容大小(Body),缓存(Caching),响应的HTTP内容类型(Content-Type),请求所运行的程序(Process),注释(Comments),自定义(Custom)

  请求相关信息 - 右边这一大片都是数据流的相关信息的查看器,这些查看器提供很多查看形式,可以查看数据流的内容。

说说我在工作中为什么使用Fiddler,如何使用Fiddler
 

  前端工程师在工作中总会有那么一些要求,要求书写的代码具有优良的兼容性,要求考虑代码的高性能,要求方法要面向对象,要求...前端工程师总是和浏览器兼容有很多不得不说的事。

  条件1:在我们前端工程师开发的工作中,要调试服务器上某个HTML/CSS/JavaScript文件。一般情况下,我们都是将文件直接进行修改,然后重新发布再去做验证,这样就容易影响到测试环境或者生成环境的稳定性。更好的做法是,我们在本地开发环境中直接修改文件并进行验证,然后发布到测试环境,这样能保证测试环境的稳定,可是又比较繁琐。

  条件2:现在我的情况是需要调试上线产品的浏览器兼容性问题,且我没有本地环境或者生成环境去测试。假如有Bug发生在Firefox或者Chrome这种有控制台支持调试的浏览器下一切都好说,可是假如bug只发生在遨游,TT,世界之窗,搜狗...这种的没有调试功能的浏览器下,而且你还碰见了我目前的情况,那么如果没有Fiddler这种工具,只能说这就是一场灾难。

  Fiddler工具可以修改HTTP数据的特性,我们就非常便捷地基于生产环境修改并验证,确认后再发布。

  第一步,先定位调试文件且下载。假设发现页面中的某个文件有问题(HTML/CSS/JavaScript都行),那么我们需要做的是就把他先下载到本地(如果本地有这个本地那么可以跳过此步骤),下载到本地的文件偶尔会有乱码的情况,建议你先清理浏览器缓存或者调整注册表(Fiddler2中文乱码问题)。

第二步,Fiddler - autoResponder出场,开启此功能。 打开AutoResponder标签设置。可以看到界面上有三个选择框,第一个的作用是开启或禁用自动重定向功能,我们就可以在下面添加重定向规则了;第二个选择框被勾上时,不匹配的请求可以通过,不影响那些没满足我们处理条件的请求。

第三步,创建重定向规则,将目标是这个js的HTTP请求重定向到本地文件。选中刚刚定位的文件,通过“Add…”按钮增加规则,也可以直接拖动过来。

第四步,选择本地刚刚保存的文件或者替换的文件,作为替换这个请求的内容。

第五步,你调试或者不调试,它就在那里 - 只会请求你本地的选择的那个文件。所以,想怎么修改都随便你了。刷新页面,就可以看见这个alert了。

总结:虽然介绍时一共分为5个步骤,其实只要用习惯了很随意就可以调试了。快速前端调试其实很简单。

Fiddler2中文乱码问题

       作者Eric Lawrence后来推出了一个威力加强版--Fiddler,大概是目前最好用的HTTP分析软件了。作为免费软件,很多方面比收费的HttpWatch、HTTP Analyzer还出色。当然商业软件也有Fiddler不具备的好处,本文主旨不是比较优劣。只说Fiddler,优点主要是:

  1. 除了能篡改request,还能篡改response;
  2. 能设置各种过滤器;
  3. 以独立的方式运行,不仅能用于IE;
  4. 有很好的扩展性,支持脚本和插件。

 

       网上的介绍文章很多,在这不多说了。但是这些文章都没提到一个问题:对于有些中文网站,POST请求中的中文参数不能被Fiddler正确处理。具体表现是:这些网站是用GB2312/GBK/GB18030编码的,比如POST请求中含有"中文"二字,在Fiddler的TextView Inspector中显示为“����”("中文"的GBK编码),到了WebForms Inspector中就显示为乱码了,因为Fiddler把它们按照UTF-8解码。反过来,在WebForms Inspector中将参数设置为中文值,会被Fiddler用UTF-8编码发送出去导致错误。其实这不是Fiddler的错,是这些土鳖网站没有在 HEADER中指定字符集。

 

      给作者发信询问,很快得到了答复:打开注册表编辑器,找到HKCU\Software\Microsoft\Fiddler2\,在里面添加一个字符串值,名叫HeaderEncoding,值设置为默认编码。建议设成GB18030。然后要记得重启Fiddler才能生效。

 

win7 

1、windows按钮+R 

2、输入regedit  +回车+是

3、HKEY_CURRENT_USER\Software\Microsoft\Fiddler2

4、右键新建,选字符串值  加上HeaderEncoding  然后值输入  GBK


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

typescript 动态给class添加方法

interface String {logit(): void; }String.prototype.logit function () {console.log(this); }let a "string"; a.logit();

Android textview 获取url,获取电话号码

textview添加autoLink属性即可<TextViewandroid:id"id/totwo"android:layout_width"wrap_content"android:layout_height"wrap_content"android:background"null"android:text"Hello World!" /> 获取urlandroid:autoL…

LR 安装与破解

LoadRunner 11 安装及破解 注意事项&#xff1a; 安装前&#xff0c;把所有的杀毒软件和防火墙关闭。 若以前安装过LoadRunner,则将其卸载。 安装路径不要带中文字符。 如果系统为WIN7&#xff0c;旗舰版才能安装。 安装完毕&#xff0c;需破解。 一&#xff0e; 下载 在HP的官…

mongoose 在数组中添加数据

主要使用$push PersonModel.update({ _id: person._id }, { $push: { friends: friend } } )

从零开始学习springBoot2

简单修改一下: 创建一个包com.kfit.test.web&#xff0c;新建类HelloController 修改 运行访问http://127.0.0.1:8080/得到相同的结果 转载于:https://www.cnblogs.com/zhengzhouyang/p/7680482.html

Android api对应版本号,获取当前手机Android版本,获取APP版本号,版本名称

String androidID Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); mDevID TextUtils.isEmpty(androidID) ? android.os.Build.SERIAL : androidID; Android API Level对应Android版本一览表 2018年01月03日 11:53:43 API LevelAndroid版本…

如何调整压力测试工具

如何调整压力测试工具 如何调整压力测试工具 您是否曾经不得不对应用程序进行压力测试&#xff0c;而最后却发现不明白结果表明什么意义?也许问题不是出在应用程序上。也许问题出在配置压力测试工具的方式上。如果您曾经经历过这种情况&#xff0c;或者正要进行压力测试&#…

vue jsx 使用 自定义组件

Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML。然而在一些场景中&#xff0c;你真的需要 JavaScript 的完全编程的能力&#xff0c;这时你可以用 render 函数&#xff0c;它比 template 更接近编译器。 我这里&#xff0c;举一个简单的例子。在iviews中使用自定义D…

js 异步请求

1、异步请求的方法&#xff1a;iframe、script、XMLHttpRequest、comet&#xff08;服务器端发起&#xff09; 2、使用XHR发起POST请求 //1 创建XHR对象 var xhr function (){   if(window.ActiveXObject){     return new ActiveXObject("Microsoft.XMLHTTP"…

Android activity跳转动画,6种activity进入动画

源码链接&#xff1a;https://pan.baidu.com/s/1jAKMNUuCdWVxUm2BUCzL2g 添加动画anim 新activity进入方式 默认是右往左进入动画 1、下往上推进入动画——100与-100互换即可——上往下推进入动画 in: <?xml version"1.0" encoding"utf-8"?>&…

Jmeter日志输出和日志级别设置

Jmeter运行出现问题可以通过调整jmeter的日志级别定位问题&#xff0c;但运行测试时建议关闭jmeter日志&#xff0c;jmeter打印日志耗费系统性能。 Jmeter日志默认存放在%JMeter_HOME%\bin目录&#xff0c;文件名通常是JMeter.log。日志记录与JMeter本身运行有关的日志信息。 J…

exposed beyond app through Intent.getData(),或FileUriExposedException

Android7.0及以上版本拍照报错 exposed beyond app through Intent.getData()&#xff0c;或FileUriExposedException 解决方法&#xff1a; 在Application的onCreat()方法中添加以下代码&#xff1a; // android 7.0系统解决拍照的问题 StrictMode.VmPolicy.Builder builde…

未获取root手机抓包方法

没有root的android不能使用类似shark的APP抓包&#xff0c;以下两个不root抓包的方法供参考 未获取root的Android手机抓包方法1&#xff1a;连接PC开启的WIFI PC开启WIFI热点共享&#xff0c;然后手机连接到此虚拟WIFI&#xff0c;pc上使用wireshark选择对应网卡抓包。 win7以上…

栈的应用--迷宫问题

问题描述&#xff1a;给定一个迷宫&#xff0c;给定入口和出口&#xff0c;找到从入口到出口的一条路径(任何一条路径都可以)&#xff0c;迷宫为0表示可走&#xff0c;为1表示墙。用1将迷宫围起来避免边界问题。 实现思路&#xff1a;1.DFS搜索&#xff08;递归&#xff09; 2.…

小程序 mpvue 生命周期一览

// vue 生命周期 beforeCreate () {console.log(vue [page-blog] beforeCreate) }, created () { console.log(vue [page-blog] created) }, beforeMount () { console.log(vue [page-blog] beforeMount) }, mounted () { console.log(vue [page-blog] mounted) }, beforeU…