fiddler常用操作总结

fiddler简介

  fiddler是位于客户端和服务器端的HTTP代理;

  日前最常用的http抓包工具之一;

  功能非常强大,是web调试的利器;

    监控浏览器所有的http/https流量

    查看,分析请求内容细节

    伪造客户端请求和服务器响应

    测试网站的性能

    解密https的web会话

    全局、局部断点功能

    第三方插件

场景使用场景:

  接口调试,接口测试,线上环境调试,web性能分析

  判断前后端bug,开发环境hosts配置,mock,弱网断网测试

B/S架构

  首先编写程序部署到web服务器

  web服务器运行在服务器上,绑定ip地址并监听某端口,接受和处理http请求

  客户端通过http协议获取服务器上的网页、文档等。

 完整的HTTP协议包括请求和响应

 

 

 

 

请求体:真正发送给服务器的文本

响应行:协议版本,状态码

 

 

响应体可以是任何的格式。

菜单栏:

  rules——》hide connects,hide 304s

 

 

 工具条的使用可参考:https://www.cnblogs.com/qican/p/11320862.html

 

 

 

 

遇到了一个不能抓包的问题,自己的解决办法:关闭360;重新安装fiddler

可以参考:https://www.cnblogs.com/baihuitestsoftware/articles/9856429.html

一、抓取https的包:

 抓取ftp的包:

2.

 检查器:一般都是选择raw——展示原始形式展示报文,表单——WebForms

响应报文中的SyntaxView展示js,针对js语法展示高亮(其实还不是很知道哈)

图片选择ImageView查看,网页的话可以选择wWebView查看(<>就是这个图标)Auth鉴权,cache缓存

 

 

 

 

 

 

如何快速找出需要的请求:

 

 

 

 3.filters过滤器

  主要是用于过滤掉不需要的请求,只要目标服务器的请求。

 更多:https://www.cnblogs.com/dashu123/p/11778593.html【有个进程过滤】

 3.找一个发post的请求

 

 

 不编辑重新发包:

 

 

 选择需要重新发送的协议,点击右键->Replay

  选中一条——右键——replay:   

        Reissue Requests:重新发送请求。

    Reissue Unconditionally: 无条件重新请求此地址。

    Reissue Sequentially:循环重新发送

    Revisit in IE:使用IE重新发送

 4.利用Composer模拟发送请求:

  把左侧会话框中的一个请求直接拖到右侧,然后可以看到这条请求的一些信息,如请求方法,请求url,请求头以及请求体(请求参数),

  然后点击【Execute】即可执行这条请求,执行成功后左侧会话框可以看到新增一条会话。

 

   以手动输入请求url、请求头、请求体等信息,不过需要注意的是:只有post请求的请求参数才要填写在Request Body处,

get请求可以直接连同headers填在上面输入框;

 

 

5.打断点:全局断点:before requests

 

  通过断点调试,可以修改http请求信息,如请求参数、cookies,fiddler有2种形式的断点,一是修改request,一是修改response

  (1)before requests请求前断点【全局断点,终端fiddler捕获的所有请求,出现T的标识,说明成功,可以点击go,就可以发送了】
  假如前端限制了某个字段的输入范围,就可以利用fiddler设置请求前断点,修改请求参数后,再发送这个请求(绕过前端限制)。

  不好截图,左上角菜单栏:Rules——Automatic Breakpoints——Before Requests[取消断点:选择disabled]

2.before response[打在request请求的时候,未达到服务器]

after response[服务器响应之后,在fiddler将响应传回给客户端之前]

 

 

单个断点:已经知道了某个接口的请求地址,这时候只需要针对这一条请求打断点调试,在命令行中输入指令就可以了

  响应前断点:bpu 网址  然后回车   取消: bpu  回车

  响应后断点:bpafter  网址  然后回车  取消:bpafter 回车

 判断bug属于是前端还是后端?  

  首先确定是界面显示问题还是功能问题

  如果是界面问题,如贴图错误,文字错误,样式错误,则需要截图。
  如果是功能问题,控制台的问题至少定位到:www的问题还是数据库问题,如果是www问题至少要定位到是前端还是后端问题;

  如果是数据库问题至少要定位到是服务端接口问题还是中间件问题。
  客户端的问题至少定位到:哪个dll模块或者逻辑出的问题
  服务端的问题至少定位到:什么接口出的问题,导致数据库哪里不对

  前台的bug通常是功能、界面和兼容性等有关;后台的bug与逻辑、性能和安全性有关。与数据相关的错误、排序问题大多是后台问题,对于APP页面toast提示可能是后台给的,可能是APP给的

  通常情况下,我们可以通过请求接口、传参和响应三部分来判断Bug,另外,也可以在浏览器的控制台进行代码调试定位。

    请求接口URL是否正确,如果请求接口URL不正确,为前端Bug
    http请求中的参数是否正确,如果http请求中的参数不正确,为前端Bug
    如果接口URL和参数都正确,查看响应内容是否正确,如果这种情况下响应内容不正确,则为后端Bug
    如果JS基础比较好的话,也可以在浏览器的控制台中输入JS代码进行调试

 

简单记录F12判断bug属于前端还是后端:

 控制台:记录了前端js执行的情况,以及前端向服务器发出去的所有http请求信息,,如果有js错误可以在控制台下看到,同样如果发送到后台的某个http请求没有得到服务器正常响应,也能看到他的状态信息。

网络:记录了前端往服务器发的所有的http请求信息,而且每个请求发送了什么数据,服务器是否正常响应了请求,如果响应了,响应回来的状态码是什么,响应数据是什么都可以在“网络”标签下看到。

6.模拟弱网测试

 

 7.只是抓取app上的包

  环境准备:电脑已安装fiddler;手机和电脑在同一局域网。

 

   查看电脑ip:打开cmd——ipconfig,记住IPv4地址或者点击fiddler上面的online

 

   手机设置:WLAN设置——选择WiFi——点击WiFi右边的箭头——手动代理

如果是https的包:在手机浏览输入:http://主机名:端口号,然后安装就好了。前面cmd得到的ipv4地址

 

过滤,只要app上面的包:

 

 会话保存:左上角:File——Selected Sessions——as Text[出现乱码的话重新保存,点击Decode]

 导入会话:将之前保存的文件直接拖进fiddler就可以了或者File—Lload Archive

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-09-29 01:40  小猪猪猪  阅读(335)  评论(0)    收藏  举报