Fiddler(二)数据信息分析

抓包是Fiddler的最基本的应用,以本博客为例,启动Fiddler之后,在浏览器中输入http://blog.csdn.net/ohmygirl 键入回车之后,在Fiddler的web session界面捕获到的HTTP请求如下图所示:
在这里插入图片描述
#号列中的图标,每种图标代表不同的相应类型,具体的类型包括:
在这里插入图片描述
另外,注意请求的host字段。可以看到有来自多个www.csdn.net的子域名的响应,说明在大型网站的架构中,大多需要多个子域名,这些子域名可能是单独用于缓存静态资源的,也可能是专门负责媒体资源的,或者是专门负责数据统计的(如pingback)。

右键单击其中的一条请求。可以选择的操作有:save(保存请求的报文信息,可以是请求报文,可以是响应报文)。例如,我们保存的一条请求头信息如下:
在这里插入图片描述
不仅是单条session,Fiddler还支持保存所有抓取到的session(并支持导入),这对于抓取可疑请求然后保存,并在之后随时分析这些请求是很有帮助的。
如果想要重新发送某些请求,可以选中这些请求,然后点击工具栏中的reply就可以重新发送选中的这些请求。
左键点击单条HTTP请求,可以在右侧的tab面板中看到如下信息:

1. Statistic

关于HTTP请求的性能和其他数据分析:

在这里插入图片描述
我们可以从中看出一些基本性能数据:如DNS解析的时间消耗是8ms,建立TCP/IP连接的时间消耗是8ms等等信息。

2. Inspectors

分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合HTTP标准的请求和响应头。Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。Cookies标签可以看到请求的cookie和响应的set-cookie头信息。
在这里插入图片描述

3. AutoResponder

Fiddler比较重要且比较强大的功能之一。可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。当勾选allow autoresponser 并设置相应的规则后(本例中的规则是将http://blog.csdn.net/ohmygirl的请求拦截到本地的文件layout.html),如下图所示:
在这里插入图片描述
然后在浏览器中访问http://blog.csdn.net/ohmygirl,得到的结果实际为:
在这里插入图片描述
这刚好是本地layout.html的内容,说明请求已经成功被拦截到本地.当然也可以使用Fiddler的内置响应。下图是Fiddler支持的拦截重定向的方式:
在这里插入图片描述
因此,如果要调试服务器的某个脚本文件,可以将该脚本拦截到本地,在本地修改完脚本之后,再修改服务器端的内容,这可以保证,尽量在真实的环境下去调试,从而最大限度的减少bug发生的可能性。不仅是单个url,Fiddler支持多种url匹配的方式:

  • 字符匹配,如 example可以匹配 http://www.example.com和http://example.com.cn
  • 完全匹配,以EXACT开头表示完全匹配,如上边的例子EXACT:http://blog.csdn.net/ohmygirl
  • 正则表达式匹配,以regex: 开头,使用正则表达式来匹配URL,如:regex:(?insx).*.(css|js|php)$ 表示匹配所有以css,js,php结尾的请求url

4. Composer

老版本的fiddler中叫request-builder.顾名思义,可以构建相应的请求,有两种常用的方式构建请求:
(1)Parsed 输入请求的url之后executed即可,也可以修改相应的头信息(如添加常用的accept, host, referrer, cookie,cache-control等头部)后execute.
这个功能的常见应用是:“刷票”(不是火车票!!),如刷新页面的访问量(基于道德和安全原因,如果你真去刷票,刷访问量,本博客概不负责)
(2)Raw。使用HTTP头部信息构建http请求。与上类似。不多叙述。

5. Filter

Fiddler另一个比较强大的功能。Fiddler提供了多维度的过滤规则,足以满足日常开发调试的需求。如下图示:
在这里插入图片描述
过滤规则有:
a. host和zone过滤。可以过滤只显示intranet或则internet的HTTP请求,也可以选择特定域名的HTTP请求
在这里插入图片描述
b. client process:可以捕获指定进程的请求。这对于调试单个应用的请求很有帮助。其他更多的设置可以参考fiddler的官方文档。

热门文章

编程学习 ·

Vue

常用指令文本插值 v-html:把文本解析为 HTML 代码。 绑定属性 v-bind:为 HTML 标签绑定属性值。 条件渲染v-if:条件性的渲染某元素,判定为真时渲染,否则不渲染。 v-else:条件性的渲染。 v-else-if:条件性的渲染。 v-show:根据条件展示某元素,区别在于切换的是 display …
编程学习 ·

BIO、NIO、AIO基本概念

BIO 采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端连接请求之后为每个客户端创建一个新的线程进行链路处理,处理完成后,通过输出流返回应答给客户端,线程销毁。 BIO主要的问题在于每当有一个新的客户端请求接入时,服务端必须…
编程学习 ·

创新实训(10)-提取式文本摘要之bert聚类

创新实训(10)-提取式文本摘要之bert聚类 1. 思路 使用bert作为预训练模型,利用bert生成的词向量进行下游任务的处理,在这篇论文中使用的是k-means计算词向量分布的重心作为文本摘要的候选句子。可以看作是聚类的一种形式。 2.代码分析 基于Pytorch的Transformers框架,使用预…
编程学习 ·

【Android 内存优化】Bitmap 图像尺寸缩小 ( 考虑像素密度、针对从不同像素密度资源中解码对应的 Bitmap 对象 | inDensity | inTargetDensity )

文章目录一、像素密度对解码图片的影响二、不考虑像素密度会导致图片缩小尺寸不准确三、DisplayMetrics 源码阅读、研究手机资源获取规则四、像素密度参数设置取值 ( inDensity | inTargetDensity | setDensity )五、inDensity 与 inTargetDensity 设置六、新的图片缩小工具类代…
编程学习 ·

程序设计思想之模块

模块使用模块分割方法来进行系统构筑何为系统设计软件开发中的模块是什么功能与模块的关系软件系统的模块结构软件层驱动层硬件层连接模块的接口接口接口设计困难结束语 使用模块分割方法来进行系统构筑 何为系统设计 软件系统规模越大,制作起来就越困难。这和在建筑中建造狗窝…
编程学习 ·

FPGA之fifo设计

FPGA之手撕fifo(含设计代码和仿真)本文回答以下几个问题:1:fifo的读空和写满信号如何给出2:fifo的写控制模块设计3:fifo的读控制模块设计4:双口RAM使用5:顶层文件6:仿真文件编写7:modelsim的RTL仿真1:上一篇文章(FPGA之FIFO IP核详细教程)已经简单说了一下读写指针…
编程学习 ·

2.4-7、背包问题

7、背包问题 【问题描述】 简单的背包问题。设有一个背包,可以放入的重量为s。现有n件物品,重量分别为w1,w2…,wn,(1≤i≤n)均为正整数,从n件物品中挑选若干件,使得放入背包的重量之和正好为s。找到一组解即可。 【输入格式】 第一行是物品总件数和背包的载重量,第二行…
编程学习 ·

个人认为制作系统盘(U盘启动盘)最干净的方式?

前言 只要你一搜索百度如何制作系统盘? 那必定是诸如大白菜,什么桃啦,什么大师啦之流!如下:广告在最前面也是某度的一贯作风! 我也曾试过这个推荐,但是往往需要在电脑上按照他们的软件等等,这个软件等你制作完系统盘之后,往往就是废物一个,占用电脑空间! 还有可恨之…
编程学习 ·

Java数据结构--循环链表

一、简介 1.1 概念对于单链表而言,最后一个结点的地址为空,如果表示最后一个结点的指针域指向头结点,整个链表形成一个环,就构成了单循环链表。 与单链表相比,只是将原来判断指针是否为空变为判断是否是头指针,没有其他的变化。 访问单循环链表某一结点,可以从任何一个结…
编程学习 ·

Object类的方法

Object 类是类层次结构的根,在 Java 语言中,所有的类从根本上而言都继承自这个类。而且,Object 类是 Java 语言中唯一没有父类的类,而其他所有的类,包括标准容器类,例如数组,都继承了 Object 类。方法名 返回类型 方法描述clone() Object 创建并返回此对象的一个副本equ…
编程学习 ·

hadoop(三)hdfs的NameNode和DataNode工作机制

文章目录1. NameNode和SecondaryNameNode(面试开发重点)1.1 NN和2NN工作机制1.1.1引言1.1.2 具体工作机制介绍1.1.3 NN和2NN工作机制详解:1.2 Fsimage和Edits解析1.2.1oiv查看Fsimage文件1.2.2oev查看Edits文件1.3 chkpoint时间设置1.4 NameNode故障处理1.5 集群安全模式1.…
编程学习 ·

Postman调用 .net 的webservice

1、使用post方式调用,url以 asmx 止。2、设置header,content-type text/xml;charset=utf-8。3、body里选择 raw,参数模板如下:<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSch…
编程学习 ·

elasticSearch docker安装,记录安装过程

elasticSearch docker安装,记录安装过程安装elasticsearch命令 #在挂载的目录下新建两个目录 mkdir -p ./config mkdir -p ./data #docker 拉取镜像文件 docker pull elasticsearch:7.4.2 #拉取elasticsearch可视化镜像 docker pull kibana:7.4.2 #新建配置文件,yml格式,冒号后…
编程学习 ·

ROS学习笔记(十七):rviz之用户指导

1.Troubleshooting 如果您遇到问题并且没有看到下面的答案,请尝试“故障排除”页面 2.Install or build rviz 2.1 Install from debian repository Until fuerte: sudo apt-get install ros-fuerte-visualizationFrom groovy on: sudo apt-get install ros-groovy-rviz # or s…
编程学习 ·

非NC模式对接工行接口,工行返回的xml报文转json

第一次写博客,写得不好请见谅!公司本来有个旧项目是用PHP3.1开发的,结果现在增加了一个需求。项目要求:客户通过银行APP自助转账来入金到平台,平台则通过非NC方式对接工行接口出金。本来应该是没有我这边的事的,谁知最后开发的时候,工行的项目经理反馈说现在非NC模式不支…
编程学习 ·

04 Ceph RBD介绍和使用

参考连接:<http://docs.ceph.org.cn/rbd/rbd/>;1 RBD简单介绍​ Ceph块设备,RADOS Block Device的简称,为客户机提供可靠的、分布式的和高性能的块存储磁盘。RADOS块设备利用librbd库并以顺序的形式在Ceph集群中的多个osd上存储数据块。RBD是由Ceph的RADOS层支持的,因…
编程学习 ·

剑指 Offer 03. 数组中重复的数字

剑指 Offer 03. 数组中重复的数字 难度:简单 题目描述解题思路 1、简单哈希 因为数组范围确定,所以可以用一个很简单的数组来代替哈希表 public int findRepeatNumber(int[] nums) {int n = nums.length;int[] count = new int[n];for (int i = 0; i < nums.length; i++) …
编程学习 ·

Win10下yolov5配置+训练自己的数据集

Win10下yolov5配置+训练自己的数据集 本人的电脑配置: CPU:i7-8700k GPU:GTX-1080ti 操作系统:Windows 10 专业版 64bit CUDA:10.1 CUDNN:7.4 OenpCV:3.3 pyTorch:1.5 Python:3.7 ps:原理精讲以及配置参数、训练参数后续上传,目前可看本人录制的yolov3的视频讲解教程…