Charles抓包工具系列文章(四)-- Rewrite 重写工具

一、背景

这是一款比Map Local/Remote 还强大的工具,更加灵活,体现在以下几点:

  • 重写request报文
  • 重写response报文
  • header 字段的增删改
  • query param 字段的增删改
  • 重写 body 字段
  • 改写http 响应状态status
  • 重写host/url/path

从这也可以看出其强大得不是一点点,下面演示每种重写的具体操作。

二、实现类似的Map Remote

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

新增重写规则,规则名称是任意的。

包括两部分:匹配规则和重写规则。

1、匹配规则

在这里插入图片描述

新增 rewrite 规则,要求Host / Port / Path 三者都匹配。

在这里插入图片描述

2、重写规则

在这里插入图片描述

Type类型选择Host, 改写请求Host地址。

在这里插入图片描述

三、重写header 字段

支持对http header字段进行增删改。

在这里插入图片描述

  • 增加header字段
    在这里插入图片描述
    在这里插入图片描述

  • 修改header字段

在这里插入图片描述

http header "x-gray"的值原本是true,被重写为 modified

在这里插入图片描述

  • 删除http header字段

删除http header字段 x-gray,因为是删除操作,所以无需输入其value, 更没有Replace之说了。

在这里插入图片描述

四、重写response报文

在这里插入图片描述

http response 响应报文中的msg原本是successful,被重写为期望的报文“charles rewrite response”。

在这里插入图片描述

在这里插入图片描述

五、改写Response Status

  • 把状态码200修改为302
    在这里插入图片描述
    在这里插入图片描述

  • 404错误

在这里插入图片描述

在这里插入图片描述

六、Query Param的增删改

限于篇幅,就不像http header字段的增删改那样逐一举例了。

这里举例Query Param的增加字段。

在这里插入图片描述

在这里插入图片描述

七、总结

因为重写的规则比较细,如何使用要视具体情况,可以替换上一篇文的Map Local/Remote。

也正因为如此,使用起来相对复杂。

最后说一句,重写规则是可以同时维护多个规则的,不仅限为一个规则。

所以说,Rewrite工具是Map Local 和 Map Remote两者的综合体。

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

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

相关文章

R语言——数据与运算

练习基本运算&#xff1a; v <- c(2,4,6,9)t <- c(1,4,7,9)print(v>t)print(v < t)print(v t)print(v!t)print(v>t)print(v<t) v <- c(3,1,TRUE,23i)t <- c(4,1,FALSE,23i)print(v&t)print(v|t)print(!v)v <- c(3,0,TRUE,22i)t <- c(1,3,T…

android imageview setImageResource vector xml ANR 怎么解决

在Android开发中&#xff0c;使用 ImageView 设置矢量图资源&#xff08;vector XML&#xff09;时&#xff0c;可能会遇到ANR&#xff08;应用无响应&#xff09;的情况。这个问题通常是因为矢量图的解析和绘制可能需要较多的时间&#xff0c;特别是对于复杂的矢量图。 以下是…

QPaintDevice

QPaintDevice 是 Qt 中用于绘图设备的基类&#xff0c;它是一个抽象类&#xff0c;不能直接实例化。QPaintDevice 提供了绘图设备的通用接口&#xff0c;包括窗口、图像、打印设备等。下面是关于 QPaintDevice 类的详细说明&#xff1a; 主要功能&#xff1a; 提供了绘图设备…

【第1章】MyBatis-Plus快速开始

文章目录 前言一、准备1. 建表语句2. 新增语句 二、安装1.Spring Boot22.Spring Boot3 三、配置1. 配置2. 扫描 四、编码五、开始使用六、开启日志1. 方式一2. 方式二 总结 前言 通过对Mybatis-Plus的安装和配置来完成对完成对Mybatis-Plus的使用。 一、准备 1. 建表语句 DR…

ITIL发展之路:从v3到v4的演变与应用

在当今瞬息万变的技术环境中&#xff0c;IT服务管理&#xff08;ITSM&#xff09;已成为企业运营的关键支柱。ITIL&#xff08;Information Technology Infrastructure Library&#xff0c;信息技术基础设施库&#xff09;作为全球公认的ITSM最佳实践框架&#xff0c;帮助组织在…

AI问答-供应链管理:渠道管理

一、理解渠道管理 1.1、理解一 渠道管理是指制造商/生产企业/服务提供企业为实现公司分销的目标而对现有渠道进行管理与控制&#xff0c;以确保对渠道成员间、公司和渠道成员间相互协调和通力合作的一切活动的有效控制。 1.2、理解二 渠道管理是指企业在产品或服务流向消费…

C语言socket HTTP Server hello world程序(Ubuntu Linux 24.04环境)

本程序实现的是一个能返回hello world的http server, 也只能返回hello world&#xff0c;作为C语言http server开发的一个起步阶段。 /* 编译生成可执行程序&#xff08;Ubuntu Linux 24.04&#xff09; # gcc ./socket_server.c -o socket_server # scp socket_server rootid…

spark中pyspark :add

一、RDD的介绍&#xff08;了解&#xff09; RDD:resilient distributed dataset(弹性分布式数据集合 ) spark的计算核心&#xff0c;spark采用rdd管理数据 RDD RDD是spark的一种数据模型&#xff08;规定数据的存储结构和计算方法&#xff09; python中的数据模型 list [] 可…

【linux基础awk】如何基于强大的awk打印列、计算

打印列 awk {print $1} test.txt#-F参数去指定分隔的字符 awk -F "," {print $1,$2} file 匹配打印列 awk /a/ {print $4 "\t" $3} test.txt筛选数值 仅打印那些含有多于18个字符的行。awk length($0) > 18 test.txt 统计数目 #统计行数 less num…

高考填报志愿,找准自己的真兴趣来选择专业

又是一年一度的高考填报志愿的时间了&#xff0c;毕业生们要根据自己的分数&#xff0c;在很短的时间内确定自己的专业。专业千万条&#xff0c;兴趣第一条。专业的选择很大程度上决定着大学的学习生活是否顺利&#xff0c;甚至决定着以后的职业生涯。在纷繁复杂的专业中&#…

Python深度学习技术

原文链接&#xff1a;Python深度学习技术 近年来&#xff0c;伴随着以卷积神经网络&#xff08;CNN&#xff09;为代表的深度学习的快速发展&#xff0c;人工智能迈入了第三次发展浪潮&#xff0c;AI技术在各个领域中的应用越来越广泛。Transformer模型&#xff08;BERT、GPT-…

写一个坏越的个人天地(三)

昨天卡巴卡巴还是投出了学习代码以来的第一份简历,遇到好的岗位还是想争取下的吧,虽然我觉得大概率还是gg了。 昨天完成了首页的上半部分 下半部分我的构思是左右栏,左侧为菜单栏,右侧为业务栏,左侧调整右侧router进行切换内容 可以用来展示js css的小demo 稍微调整下ro…

Vue3 国际化i18n

国际化i18n方案 1. 什么是i18n2. i18n安装、配置及使用2.1 安装2.2 配置2.3 挂载到实例2.4 组件中使用2.5 语言切换 1. 什么是i18n i18n 是“国际化”的简称。在资讯领域&#xff0c;国际化(i18n)指让产品&#xff08;出版物&#xff0c;软件&#xff0c;硬件等&#xff09;无…

[UE虚幻引擎] DTSpeechVoice 文字转语音播放 插件说明

本插件可以在UE中使用蓝图把文本转成语音播放&#xff0c;播放的声音引擎是使用Windows自带的语音引擎&#xff0c;支持Win10&#xff0c;Win11。 系统设置 首先确认电脑是否有语音系统&#xff0c;一般正常安装的电脑都是自带的。 如果要播放多语言的&#xff0c;请自己下载其…

Python光束三维二维标量场和算法

&#x1f3af;要点 &#x1f3af;矢量计算和绘图&#xff1a;&#x1f58a;二维&#xff0c;三维 | &#x1f58a;转换矢量图 | &#x1f58a;矢量和矩阵计算 | &#x1f58a;矢量空间变换和计算 | &#x1f58a;解矢量线性方程 | &#x1f3af;数学和物理矢量计算&#xff1a…

无中心化崛起:Web3对传统互联网的冲击与重构

随着Web3技术的兴起&#xff0c;传统互联网面临着前所未有的挑战和重构。本文将深入探讨Web3的无中心化特性如何对传统互联网产生冲击&#xff0c;以及其可能带来的重大影响和未来发展趋势。 1. 传统互联网的局限与问题 传统互联网&#xff0c;通常称为Web2&#xff0c;主要依…

kafka--发布-订阅消息系统

1. Kafka概述 1. kafka是什么 kafka是分布式的、高并发的、基于发布/订阅模式的消息队列软件系统。 kafka中的重要组件 Producer&#xff1a;消息生产者&#xff0c;发布消息到Kafka集群的终端或服务Consume&#xff1a;消费者&#xff0c;从Kafka集群中消费消息的终端或服…

Python hash编码(go hash编码)

id="中国人" 首先,go语言hash: import (mmh3 "murmurhash3") mmh3.Murmurhash3([]byte(id)) 对应到Python hash编码,可以直接使用mmh3 import mmh3 mmh3.hash(id,signed=False) 其源码可以表示为 def sum32WithSeed(datas, seed=0):c1_32 = 0xcc9e…

《mnist_model.h5》在flask中加载mnist模型

一、在tensorflow中新建及保存模型 启动Jupyter Notebook 新建Notebook 代码 from flask import Flask, request, jsonify # type: ignore import numpy as np # type: ignore import tensorflow as tf # type: ignore import json from PIL import Image # type: i…

Rust编写测试及控制执行

编写测试及控制执行 在 Rust 中&#xff0c;测试是通过函数的方式实现的&#xff0c;它可以用于验证被测试代码的正确性。测试函数往往依次执行以下三种行为&#xff1a; 设置所需的数据或状态运行想要测试的代码判断( assert )返回的结果是否符合预期 让我们来看看该如何使…