zoukankan      html  css  js  c++  java
  • Fiddler使用

    Fiddler是位于客户端和服务端之间的HTTP代理,也是目前最常用的用抓包工具之一。

    官网:https://www.telerik.com/fiddler

    它能够:

    • 监控浏览器所有的HTTP/HTTPS流量
    • 查看/分析请求内容细节
    • 测试网站的性能
    • 解密HTTPS的web会话
    • 伪造客户端请求和服务器响应
    • 全局/局部断点功能
    • 第三方插件

    使用场景:

    • 接口测试、线上环境调试、web性能分析
    • 判断前后端bug、开发环境hosts配置
    • mock、弱网断网测试

    fiddler工作(抓包)原理

    敲黑板!划重点!!

    为了更好的使用fiddler(当然也包括其他抓包工具),请关闭windows防火墙,360全家桶,腾讯管家等软件。

    安装及配置

    Fiddler for mac

    其实,mac系统中,用Charles更好,此处推荐参考:

    https://www.cnblogs.com/guobaoyuan/p/13931815.html

    Fiddler for windows

    环境:win10 + 火狐浏览器

    安装

    下载

    点击https://www.telerik.com/download/fiddler链接下载。

    当点击下载后,会进入下载页面自动下载,如果自动下载失败,点击如下图的中的链接。

    安装

    • 双击本地的可执行文件(如果遇到用户账户控制,点击即可),选择I Agree的。

    • 选择安装位置并点击Install后, 会进入安装步骤(遇到弹窗或者浏览器弹窗,叉掉即可)

    • 然后点击Close完成安装。

    • 需要注意的是,fiddler在安装成功后并不会自动的在桌面添加快捷方式,但你可以进入安装目录将可执行文件发送到桌面快捷方式/固定到任务栏/添加到开始菜单都随你。

    • 当你启动fiddler之后,可能会提示如下图的warning,翻译成中文就是: Windows 使用了隔离技术, 阻止被 只有调用本地代理的传统软件和Edge浏览器 抓包。 请使用:工具条里面的WinConfig 去允许抓包。看不懂没关系,我们点击No即可。

    • (如果是第一次打开)是否选择发送匿名的使用和配置信息,使fiddler更完善,根据你的选择了。

    Fiddler代理配置

    安装成功后,我们打开fiddler配置一下代理设置,这也是一个最常用的配置操作。

    • 菜单栏选择Tools下的Options

    • 选择Connections,fiddler监听的端口默认是8888,如果该端口与你其他应用的端口冲突,你也可以自定义1024~65536范围内的任意端口,然后勾选作为系统代理。

    完事!

    火狐浏览器代理设置

    这里以火狐浏览器为例来设置代理。

    • 火狐浏览器菜单栏右上角点击设置,然后点击选项

    • 下拉选择在网络设置中选择设置

    • 如下图,选择手动代理设置。端口保持跟fiddler的代理端口保持一致,完事点击确定即可。

    此时火狐浏览器发送的请求自动走fiddler的代理。

    测试

    当配置完毕fiddler和浏览器的代理后,在浏览器地址栏访问http://www.neeo.cc:6001/

    此时,我们在fiddler中已经能发现成功的监听到了相关请求了。

    快速上手

    fiddler面板

    如下图。

    一般的,我们可以将fiddler的面板分为5部分:

    • 菜单栏:关于fiddler的设置相关。

      • Rules关于规则的设置,比如隐藏建立通道的连接,隐藏304的连接,隐藏关于图片的连接。
    • 工具栏:关于请求的常用的工具,从左到右依次是:

      • WinConfig是关于windows的配置,用的较少,这里可以忽略掉。
      • Set Comments会话图标,当你选中一个连接,点击该按钮可以设置选中连接的备注信息。当你在导出会话时,可以看到这个备注信息,可以提醒别的别人关于这个连接的备注。
      • Replay重放请求,当你选中一个链接,点击Replay按钮,fiddler可以重新向该连接发送请求。
      • Remove也就是那个×按钮,清除,清除所有连接,清除所有图片连接,清除非200请求等等。
      • Go用于断点模式。
      • Stream流模式(可选模式),fiddler默认是缓冲模式,也就是服务器将所有的结果返回给fiddler,fiddler再一次性将结果展示,如无特殊情况不选择使用流模式。
      • Decode对请求做解码。
      • Keep保持会话的数量。
      • Any Process选择监听的程序,点击该按钮左边的加号,拖到想要监听的应用上去,比如拖到火狐浏览器上去,此时,fiddler只会监听火狐浏览器的请求。
      • Find查找和过滤请求。
      • Save保存.saz结尾的会话到本地。
      • 截图,截取当前桌面,可以保存到本地。
      • 计时器,呃,就是个计时器,我们看下一个吧!
      • Browse,当你选中一个请求后,可以点击下拉选择打开到指定浏览器,算是快捷方式吧。
      • Clear Cache清除IE浏览器缓存。
      • TextWizard编码解码工具。比如将剪贴板的内容编码为base64格式,也可以提供加密、url编码等等功能。
      • Tearoff将辅助工具单独分离为小窗。
      • MSDN Search微软开发者网络,参见维基百科
      • Online关于本机的相关信息,比如网卡信息,IP等。
    • 监控面板(会话列表):fiddler监听的每条http请求(每一条称为一个session),主要包含了:

      • #请求的顺序,从1开始,按照页面加载请求的顺序递增。
      • Result响应状态码。
      • Protocol请求使用的协议,如HTTP/HTTPS/FTP等。
      • Host请求地址的域名(主机名)。
      • URL请求服务器的路径和文件名,如果是get请求,也包括参数。
      • Body响应体大小,单位是bytes
      • Caching缓存。
      • Content-Type响应内容的Content-Type
      • Process请求所在系统的应用进程/进程ID。
      • Comments用户通过脚本或者右键添加的备注信息。
      • Custom用户可以通过脚本设置的自定义值。

      除了这些默认的字段,也可以手动添加一些自定义的,后面会讲到。

    • 命令行(QuickEexec):提供了很多快捷命令方式,比如过滤(标记)出响应体大于指定字节的请求,就可以在命令行中输入>100然后回车,这是过滤响应体大于100字节的请求。更多参见官网

    我们无需记住所有的选项,只需要记得一些常用的用法即可。

    会话列表添加字段

    在会话列表中,可以自定义的添加一些字段。

    在会话列表的title,鼠标右键,选择Customize columns

    然后选择合适想要添加的字段。

    PS:这个用处不大。

    那我们如何想要在这个会话列表中展示域名对应的IP该如何做呢?

    • 菜单栏选择Rules中的Customize Rules

    • 再打开的编辑器中:
      • 第一步,Ctrl + F搜索static function Main()
      • 第二步,如下图,将FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");填写进去,然后Ctrl + S保存即可。
    FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
    // 注意, ServerIP 是在会话列表中显示的字段名,可以自定义
    

    • 现在,在会话列表中就可以看到新增的一个字段了。

    PS:拖动字段名字可以移动位置。

    see also:https://blog.csdn.net/mlgglm/article/details/42678205

    statistics选项卡:

    • request count:请求数,表示该session总共发起来多少个请求
    • Bytes sent:发送请求的字节数,包括请求头和请求体
    • Bytes received:接收的字节数,包括响应头和响应体
    • ClientConnected:客户端连接的时间
    • ClientBeginRequest:客户端开始发送请求的时间
    • GotRequestHeaders:获取请求头文件的时间
    • ClientDoneRequest:客户端完成请求的时间
    • Determine Gateway:确定网关使用的时间
    • DNS Lookup:查找DNS使用的时间
    • TCP/IP Connect:tcp/ip连接使用的时间
    • HTTPS Handshake:HTTP握手使用的时间
    • ServerConnected:服务连接发生的时间

  • 相关阅读:
    axios,ajax,xhr 请求携带Cookie
    js中reduce的方法和去重
    H5图片预览
    网页唤起qq加群
    tab切换中嵌套swiper轮播
    CantOS的安装
    共享文件夹或文件
    Vue中,iframe中的子网页,调用父网页的方法
    禁止未使用的变量 ( `no-unused-vars`)
    vite + vue3 + ts搭建项目
  • 原文地址:https://www.cnblogs.com/guobaoyuan/p/14071050.html
Copyright © 2011-2022 走看看