fiddler

news2025/7/17 9:33:36

文章目录

    • fiddler
      • 简介
      • URL与HTTP
        • URL
        • http
      • 模拟测试场景
      • 弱网测试
        • 自定义规则
      • 前端性能分析及优化

fiddler

简介

Fiddler是位于客户端和服务端的HTTP代理

  • 目前最常用的http抓包工具之一
  • 功能非常强大,是web调试的利器
    • 监控浏览器所有的HTTP/HTTPS流量
    • 查看、分析请求内容细节
    • 伪造客户端请求和服务端响应
    • 测试网站的性能
    • 解密HTTPS的web会话
    • 全局、局部断电功能
    • 第三方插件
  • 使用场景
    • 接口调试、接口测试、线上环境调试、web性能分析
    • 判断前后端bug、开发环境hosts配置、mock、弱网断网测试

只能抓http/https的包

配置支持HTTPS抓包

Tools-OptionsS-Https
在这里插入图片描述

URL与HTTP

URL

URL:统一资源定位符,通过URL的方式去访问的资源(接口)

URI:统一资源标识符,抽象的概念。URL可以理解为为URI的子集或具体实现方式。URI没有具体的实现

一般来讲URL分为5个部分

protocol、domain、port、path、url parameters

  • protocol(协议)

    url中://之前的部分

    通信双方对于通信过程中的数据、数据组织格式、规程、含义等等所作出的约定。

    一般来说,按照TCP/IP模型,不同的层有不同的协议

    接口测试一般来说从应用层的协议着手来模拟实现接口请求和访问的

    常见的应用层的协议有:

    • http
    • https(http+ssl/tls)
    • ssh
    • ftp
    • smtp
    • pop3
    • mysql
    • oracle
    • MS SQL
  • domain(域名)

    • 要访问的服务器地址,可以是服务器的域名/ip地址/机器名
  • port(端口)

    • 由服务器提供,用来监听客户端的请求

    • 格式上:domain:poart

    • PS如果服务器所设置的监听端口和其应用所采用的通信协议是默认的对应关系,则用户在通过URL来访问是,可以省略端口。

    • 常见的协议及其默认的通信端口对应关系

      协议默认通信端口
      http80
      https443 or 8443
      ftp21
      ssh22
      smtp25
      pop3110
      oracle1521
      mysql3306
      MS SQL1433
  • path(路径)

    要访问的资源在服务器的容器路径下的相对地址

    PS:一般来说:路径适合要访问的接口直接相关的

  • url parameters(URL地址参数)

    通常是以问好?作为连接符拼接在path之后

    url地址是键值对应的,即key=value的格式多个键值之间使用&作为连接符

http

  • Hyper Text Transfer Protocol(超文本传输协议)
  • 用于从万维网服务器传输资源到本地浏览器的传送协议
  • HTTP协议是基于TCP的应用层协议,他不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80
  • http是基于请求与响应模式、无状态的应用层的协议

特点

  • 基于request(请求)和response(响应)的协议。

  • 简单、灵活的协议

    • 仅需url和请求方法
    • 可以实现任何类型的静态和动态资源的交互
  • 一种快速的协议

    • http1.0及0.9版本,http协议默认是一种短链接的协议。

      短连接:一个tcp连接上只能建立一个http连接,http结束之后,tcp连接也释放结束

    • http1.1开始,http协议默认是一种面向长连接的协议。

      长连接:一个tcp连接上可以建立多个http连接。

      通过信息头:Connection来实现的。keep-alive就是表示长连接

  • 无状态的协议

详细构成

http协议包含两个部分:http request、http response

  • http request:http请求,影响的是脚本的实现

    • request line

      请求行,是指请求数据包中的第一行内容

      GET /baidu/ HTTP/1.1

      通常包含以下信息

      • request method

        请求方法,所有的http请求都必须指定请求方法,如果没有指定,则默认使用get方法

        常见的请求方法有:**get、post、put、patch、delete、**options、header、trace等

        方法
        GET请求资源
        POST提交资源
        Head获取响应头
        PUT替换资源
        DELETE删除资源
        OPTIONS允许客户端查看服务器的性能
        TRACE回显服务器收到的请求,用于测试或诊断
      • request path

        请求路径,就是指URL中的path和utl地址参数两个部分

      • protocol/verseion

        协议版本

    • request headers

      请求头,是指请求数据包中的第二行到第一个空行之前的部分

      请求头是客户端用来和服务器进行通信信息、控制信息等交互的。

      一般来说和业务逻辑无关(处理状态类的信息头)。

      信息头是键值对应的。

      信息头的类型是由协议规定的,不同的信息头具有不同的作用

      信息头
      User-Agent简称UA,是客户端用来告知服务器,客户端的一些配置信息。服务器往往就是通过该信息头来判断“用户”是不是同一个用户。
      一般作为全局信息头。
      Content-Type该信息头是客户端用来告知服务端,客户端向服务器所发送的请求body中的数据的数据组织格式。
      要求和实际发送的数据格式保持一致。
      状态有关的头token、author等
      请求头描述
      Host主机IP地址或域名
      User-Agent客户端相关信息,操作系统、浏览器等信息
      Accept指定客户端接受信息类型,如:image/jpg,text/html,application/json
      Accept-Charset客户端接受的字符集,如gb2312,iso-8859-1
      Accept-Encoding可接受的内容编码,如gzip
      Accept-Language接受的语言,如Accept-Language:zh-cn
      Authorization客户端提供给服务端,进行权限认证的信息
      Cookie携带的cookie信息
      Referer当前文档的URL,即从哪个链接过来的
      Content-Typeqing’qiqingqi打内容类型,如Content-Type:application/x-www-form-urlencoded
      Content-Length数据长度
      Cache-Control缓存机制,如Cache-Control:no-cache
      Pragma防止页面被缓存,和Cache-Control:no-cache作用一样
    • request body

      请求指数提,是指从请求数据包中的第一个空行之后的所有内容。

      一般来说,get方法发送的数据位于url地址参数,反之放在url地址参数中的数据,服务器认为试通过get方法发送的

      post方法发送的数据一般是位于请求主体中

      PS:请求主体中的数据组织格式是由接口本身所决定的

      ​ 一旦请求主体哟数据,则信息头中一定要指定Content-Type

  • http response:http响应,影响的是脚本的增强处理

    HTTP响应报文主要由状态行、消息报头、空一行、响应正文四部分组成

    • response line

      响应行,是指响应数据包中的第一行内容

      HTTP/1.1 200 OK

      portocol/version协议/版本
      response code响应代码(又叫status code、状态码),是服务器用来告知客户端,服务对于请i去的处理状态。
      响应代码给出的置视通信层面的处理状态。
      业务的成功是建立在通信成功的基础之上。
      - 1xx:表示连接建立过程中双方的通信控制信息
      - 2xx:服务器处理成功
      - 3xx:重定向
      一般来说1~3都表示通信成功
      - 4xx:客户端错误
      - 5xx:服务器错误
      response message
    • response headers

      响应头,是服务器返回给客户端的

      可能会有服务器返回的一些状态有关的信息头需要关联处理

      响应头描述
      ServerHTTP服务器的软件信息
      Date响应报文的时间
      Expires指定缓存过期时间
      Set-Cookie设置Cookie
      Last-Modified资源最后修改时间
      Content-Type显影的类型和字符集,如:Content-Type:text/html;charset=utf-8
      Content-Length内容长度
      Connection如Kepp-Alive,表示保持tcp连接不关闭,不会永久保持连接,服务器可设置
      Location知名重定向的位置,新的URL地址,如304的情况
    • response body

      响应主体是指响应数据包中的第一个空行之后的所欲内容

      响应主体就是服务器对于请求的处理结果

      要去判断请求是否成功,要去进行数据关联,很多时候都是和响应主体有关

BS架构:浏览器到服务器

  • 编写程序部署到web服务器
  • web服务器运行在服务器上,绑定ip地址并监听某端口,接收和处理http请求
  • 客户端通过http协议获取服务器上的网页、文档等资源

模拟测试场景

  1. 模拟发送请求,进行接口测试
    • 需求文档中说明,某个接口限制同一账号只能请求一次,同一设备只能请求一次
    • 存在页面输入限制,需要模拟特殊情况请求(例如特殊字符,空格等参数),测试程序处理机制
  2. Mock接口返回数据,测试程序
    • 需要验证接口数据能否正常处理,但程序处于开发过程中,后台无法对发送请求给出响应
    • 需要验证程序针对404,500,502等不同状态的处理机制

弱网测试

日常进地铁、上公交,进电梯等,如果app没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到app闪退、ANR、数据丢失等问题

  1. 打开限速开关
  2. 设置弱网环境
  3. 使用app进行操作验证

在这里插入图片描述

自定义规则

修改自定义文件后需要重新打开限速开关

在这里插入图片描述

if (m_SimulateModem){
    //Delay sends by 300ms per KB uploaded.
    //每上传KB延时300ms
    oSession["request-trickle-delay"]="300";
    //Delay receives by 150ms per KB downloaded.
    //每下载KB延迟接收150ms
    oSession["response-trickle-delay"]="150";
}

在这里插入图片描述

前端性能分析及优化

在这里插入图片描述在这里插入图片描述

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

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

相关文章

Android之屏幕适配方案

在说明适配方案之前,我们需要对如下几个概念有所了解:屏幕尺寸,屏幕分辨率,屏幕像素密度。 屏幕尺寸 屏幕尺寸指屏幕的对角线的物理长度,单位是英寸,1英寸2.54厘米。 比如常见的屏幕尺寸:5.0、5…

粒子群优化SVM含水率预测

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 SVM应用实例,基于粒子群改进SVM的含水率回归分析 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性…

python --生成时间序列,作为横轴的标签。时间跨越2008-2022年,生成每年的6-10月的第一天作为时间序列

python 生成制定的时间序列作为绘图时x轴的标签 问题需求 在绘图时,需要对于x轴的标签进行专门的设置,整体时间跨越2008年-2022年,将每年的6-10月的第一天生成一条时间序列,绘制成图。 解决思路 对于时间序列的生成&#xff0…

【react 全家桶】条件渲染

文章目录05 【条件渲染】基础配置1.条件判断语句2.三目运算符3.与运算符&&4.元素变量5.阻止组件渲染05 【条件渲染】 在 React 中,你可以创建不同的组件来封装各种你需要的行为。然后,依据应用的不同状态,你可以只渲染对应状态下的部…

VB实现点爆炸效果

需在窗体放置以下 4 个控件,所有控件不用设置任何属性,均采用默认设置: ’ Picture1,Command1,Check1,Timer1 Option Explicit Dim I Dim ctD() As tyD, ctDs As Long, ctR As Single Private Type tyD x…

java单元测试(二)H2数据库篇

java单元测试(二)H2数据库篇一、什么是H2?二、Springboot项目集成H22.1、引入H2依赖2.2、初始化spring配置文件application.test.xml2.3、初始化H2数据库DDL/DML语句三、编写单元测试3.1、首先我们创建测试类3.2、编写测试用例3.3、测试用例一…

elasticsearch集群搭建(ES集群搭建)

目录一、下载Elasticsearch1.选择你要下载的Elasticsearch版本二、采用通用搭建集群的方法三、配置三台es1.上传压缩包到任意一台虚拟机中2.解压并修改配置文件(配置单台es)3.配置三台es集群一、下载Elasticsearch 1.选择你要下载的Elasticsearch版本 es下载地址 这里我下载…

Mysql架构以及Mysql引擎

Mysql架构1.连接层:负责接收客户端的连接请求最上层是一些客户端和连接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 tcp/ip 的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。2.服务层:sql接口接收s…

【UEFI实战】BIOS与IPMI

KCS KCS全称是Keyboard Controller Style,关于这个名称不用过多的追究,只需要知道它是系统(BIOS和OS)和BMC通信的一种基本方式即可。本文将介绍BIOS下的KCS接口,包括接口使用方式和数据。内容参考自《ipmi-second-gen…

[LeetCode周赛复盘] 第 99 场双周赛20230304

[LeetCode周赛复盘] 第 99 场双周赛20230304 一、本周周赛总结二、 [Easy] 2578. 最小和分割1. 题目描述2. 思路分析3. 代码实现三、[Medium] 2579. 统计染色格子数1. 题目描述2. 思路分析3. 代码实现四、[Medium] 2580. 统计将重叠区间合并成组的方案数1. 题目描述2. 思路分析…

DALL·E 2 论文阅读笔记

《Hierarchical Text-Conditional Image Generation with CLIP Latents》Paper: https://cdn.openai.com/papers/dall-e-2.pdfProject: https://openai.com/product/dall-e-2Author: OpenAI闲言碎语时间线:2021.01推出DALLE,2021年底推出GLIDE&#xff0…

锦正茂风冷系列电源JCP-10-80的技术参数

JCP-10-80为高稳定度的双极性恒流电源,广泛应用于电磁铁、亥姆霍兹线圈等感性负载的励磁。电源采用线性电源结构,输出电流稳定度高,纹波和噪声低。电源输出电流可在正负额定电流*值之间连续变化,电流平滑连续过零,可使…

引出生命周期、生命周期_挂载流程、生命周期_更新流程、生命周期_销毁流程、生命周期_总结——Vue

目录 一、引出生命周期 二、生命周期_挂载流程 三、生命周期_更新流程 四、生命周期_销毁流程 五、生命周期_总结 一、引出生命周期 生命周期: 1.又名:生命周期回调函数、生命周期函数、生命周期钩子。 2.是什么:Vue在关键时刻帮我们调…

centos安装 jenkins

目录 一、安装 jdk 二、安装 maven 三、安装 jenkins 官网地址:Jenkins 一、安装 jdk 首先检索包含 java 的列表 yum list java* 检索1.8的列表 yum list java-1.8* 安装 1.8.0 的所有文件 yum install java-1.8.0-openjdk* -y使用命令检查是否安装成功 …

Git图解-IDEA中的Git操作

目录 一、配置Idea 二、项目克隆 三、文件状态识别 四、Git操作 4.1 git add--添加暂存区 4.2 git commit--提交本地仓库 4.3 git push--推送远程仓库 4.4 git pull--更新本地仓库 五、完整开发流程 5.1 步骤1:克隆项目 5.2 步骤2:创建自己开发…

呆头鹅批量剪辑软件,一天制作1000+视频过审神器,0基础批量操作

当我们需要处理大量的视频时,怎么样才能够让工作变得更加简单?可以来试试呆头鹅批量剪辑软件,软件功能非常强大,支持批量剪辑视频,剪辑的过程中可以设置输出的位置和分辨率,同时可以对视频进行一些编辑处理…

CentOS定时任务——crontab

crontab Linux crontab 是用来定期执行程序的命令。 crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你…

软件测试16

在桌面上打开终端窗口, 执行如下操作: 将根目录下所有文件的详细信息输出到 demo 文件中查看 demo 文件前 5 行内容查看 demo 文件后 5 行内容将 ping www.itheima.com 的信息输出到 ping_log 文件中重新开启一个终端窗口, 动态查看 ping_log 文件中的信息 查看日志文件内容…

unity3D基础操作之01--unity3d窗口界面介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录最常使用5种窗口1、Scene场景编辑窗口2、Game游戏运行窗口需要注意的是3、Hierarchy场景物体列表窗口4、Project项目资源列表窗口需要注意的是5、Inspector属性编辑列…

4.Spring Cloud (Hoxton.SR8) 学习笔记—Nacos微服务治理、Nacos配置管理

本文目录如下:一、Nacos微服务治理Nacos 下载 与 启动Spring Cloud 集成 NacosIDEA 同一个 Application 启动多次Nacos - 配置集群Nacos - 设置负载均衡Nacos - 设置服务实例的权重二、Nacos 配置管理Nacos - 合理的把配置信息迁移到 Nacos 中Nacos - 如何使用 Naco…