【fiddler】讲解

Fiddler 的详细介绍

一、Fiddler与其他抓包工具的区别

 1、Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存;
 2、Wireshark是通用的抓包工具,能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,但如果是TCP、UDP协议可以用wireshark;
 3、Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件);
而Fiddler 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。

二、Fiddler的工作原理

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据。
 既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端

web客户端和服务器的请求如图1所示:
在这里插入图片描述

注:使用Fiddler的话,需要先设置浏览器的代理地址,才可以抓取到浏览器的数据包。而很方便的是在你启动该工具后,它就已经自动帮你设置好了浏览器的代理了,当关闭后,它又将浏览器代理还原了。当然如果发现没有自动设置浏览器代理的话,那就得自己动手去浏览器进行设置代理操作了。(可自行百度每个浏览器是如何设置代理的),反正一定要设置相应的代理,否则fiddler是无法捕获到HTTP请求的。

三,Fiddler中获取https协议

1、Fiddler 设置解密HTTPS的网络数据
 Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的。
解密HTTPS需要手动开启,依次点击:Tools –> Fiddler Options –>  HTTPS ->勾选Decrypt HTTPS traffic -> 点击Yes,在弹出的对话框中选择是即可,如图12所示

在这里插入图片描述
在这里插入图片描述
图12
选中checkbox, 弹出如下的对话框,点击"YES"
在这里插入图片描述
在这里插入图片描述
出现弹框点击"Yes"按钮,即可使用

五、Fiddler的使用界面介绍

1、主界面如图2所示:
在这里插入图片描述
图2(fiddler主界面)

2、左边web session面板的字段及图标含义如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、Fiddler的功能介绍

右边是详情和数据统计面板
1)Statistics统计
关于HTTP请求的性能(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)以及数据分析。如图3所示:
在这里插入图片描述
2)Inspectors检查
是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容,提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,如图4所示:
在这里插入图片描述
a、ImageView标签
JPG 格式使用 ImageView 就可以看到图片,选择一条Content-Type是image/jpeg的回话,点击TextView
在这里插入图片描述
b、TextView 标签
HTML/JS/CSS 使用 TextView 可以看到响应的内容。选择一条Content-Type是text/html的回话,点击TextView
在这里插入图片描述
c、Raw标签
Raw标签可以查看响应报文和响应正文,但是不包含请求报文
在这里插入图片描述
d、Auth标签
Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息
e、Cookies标签
Cookies标签可以看到请求的cookie和响应的set-cookie头信息。
在这里插入图片描述
3) Filters过滤
Filter标签则可以设置Fiddler的过滤规则,来达到过滤http请求的目的。最简单如:过滤内网http请求而只抓取internet的http请求,或则过滤相应域名的http请求。Fiddler的过滤器非常强大,可以过滤特定http状态码的请求,可以过滤特定请求类型的http请求(如css请求,image请求,js请求等),可以过滤请求报文大于或则小于指定大小(byte)的请求

【Filters】 勾选 【use filters】

在这里插入图片描述

1.1. 广域网的介绍

在这里插入图片描述

广域网,又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
1.2. 局域网的介绍

在这里插入图片描述

局域网,又称内网是一个可连接住宅,学校,实验室,大学校园或办公大楼等有限区域内计算机的计算机网络。
 
Intranet称为企业内部网,或称内部网、内联网、内网,是一个使用与因特网同样技术的计算机网络,它通常建立在一个企业或组织的内部并为其成员提供信息的共享和交流等服务,例如万维网,文件传输,电子邮件等。可以说Intranet是Internet技术在企业内部的应用。
1.3. 过滤器的应用:

多台服务器,排查哪一台服务器出错,输入ip,出现5开头的错误,就说明哪台服务器出错了。

多台服务器,排查哪一台服务器出错,输入ip,出现5开头的错误,就说明哪台服务器出错了。

在这里插入图片描述

左下方有钳子图标说明你代理打开了

在这里插入图片描述

其他功能:隐藏带有图片的信息

在这里插入图片描述
Use Filters:勾选则表示使用过滤,不勾选则表示不进行过滤

Actions:有四个选项:
Run Filterset now:立即运行过滤设置;
Load Filterset:加载保存的过滤设置;
Save Filterset:保存过滤设置;
help:帮助
Hosts:该设置项有两个选项:
第一个下拉框是只显示内网或者外网选项
第二个下拉框是根据主机名信息显示或者隐藏或者标记指定请求
Client Process:有三个选项:
1).Show only traffic from:根据进程信息进行过滤,选择后,将只显示由该进程发出的请求;
2).Show only Internet Explorer traffic:只关心由IE浏览器发出的请求;
3).Hide traffic from Service Host:隐藏来自service host(即由svchost.exe进程发出)的请求
Request Headers:有五个选项:
1).Show only if URL contains:可以通过正则表达式过滤请求地址中包含或不包含的内容,例如REGEX:\.(js|css|js\?.*|css\?.*)$(隐藏所有js和css请求);
2).Hide if URL contains:与Show only if URL contains相反,一个是显示,一个是隐藏;
3).Flags requests with headers:支持指定某个http请求头名称,如果在web session列表中存在该请求头,会加粗显示该session;
4).Delete requests headers:与Flags requests with headers类似,这里是如果包含该请求头,则删除该请求头;
5).Set request header:将HTTP请求头更新为所输入的值。
Breakpoints:断点设置,有四个选项:
1).Break request on POST:对POST请求设置断点;
2).Break request on GET with query string:会为所有方法为GET且URL中包含了给定查询条件的请求设置断点;
3).Break on XMLHttpRequest:对所有能够确定是通过XMLHTTPRequest对象发送的请求设置断点;
4).Break response on Content-Type:会为所有响应头Content-Type中包含了指定文本的响应设置响应断点。
Response Status Code:根据响应状态码设置断点。
Response Type and Size:有几种类型:
1)一类是根据响应数据的类型显示或隐藏;
2)一类是根据响应数据的大小显示或隐藏;
3)一类是根据响应所需要的时间设置背景颜色;
4)一类是根据文件类型进行限制。
type有以下几种类型:
1.Time HeatMap复选框会基于服务器返回给定响应所需要的时间为每个session设置背景颜色。
2.Response Headers:与Request Headers不同的是,这块区域是针对响应数据的头部进行过滤。
4) 弱网测试(重点)
在解决日常的支持需求中,经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,或者是本身网络环境就较为恶劣,而服务在面对这种恶劣的网络环境的健壮性不够,导致会出现一些意想不到的bug。而在正常的开发自测过程中很难去营造出这种恶劣的网络环境,使得这些bug较难被提前发现和修复。另外一些服务在恶劣网络环境下虽然不会出现不可用的情况,但是用户体检很差,为了优化这个情况下的用户体验,也需要去在本地模拟这种环境来进行调优。 
所以要去复现这些bug,甚至是去提前发现这些bug,就需要能够在开发环境中模拟出恶劣的网络环境,从而看到在这种恶劣的网络环境下的服务的表现等。
通过应用层或者传输层的代理服务器,通过在代理服务器上设置一些模拟恶劣网络环境的参数,使得通过这些代理服务器的流量都被转化为恶劣网络环境下的流量。如利用Fiddler,Charles等具有代理服务器功能的网络流量分析软件来实现。
  即利用Fiddler来模拟恶劣的网络环境,对服务进行测试,这个手段实现简单,较为直观,但是缺点是只能支持那些利用HTTP进行通信和交互的服务。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值