鼠年全马铁人挑战 WEEK 37:封包测试工具 - Charles (二)

           Photo on charlesproxy.com


前言

上个礼拜简单的分享了 Charles 的安装与选项栏中的 Proxy 功能
而这个礼拜将会延续上礼拜的内容继续分享另一个较为常用的选项栏功能 Tools

分享重点

  • 选项栏中的 Tools 功能介绍
    • No Caching Settings
    • Block Cookies Settings
    • Map Remote Settings
    • Map Local Settings
    • Rewrite Settings
    • Black List Settings
    • Allow List Settings

介绍 Charles

选项栏 - Tools

  • No Caching Settings (设定禁用缓存)
      缓存对 Web 来说是非常重要的存在
      因为经常会在多个页面中重复使用相同的资源
      大幅减少每个页面都需重新加载的问题
      但是,缓存可能会导致看不到资源的最新版本
      对於开发应用程序会是一大障碍
      No Caching 可以防止 Client 应用程序缓存任何资源
      可以透过 Import/Export 来汇入或汇出设定内容

      "Enable No Caching":防止所有请求缓存资源
      "Only for selected locations":透过 Add 防止指定请求缓存资源

  • Block Cookies Settings (设定禁用 Cookie)
      禁用 Cookie 非常适用於测试网站
      就像是在浏览器中禁用了 cookie 一样
      爬虫(例如Google)通常不支持 Cookies
      Block Cookies 可以阻止 Cookie 的发送和接收
      可以透过 Import/Export 来汇入或汇出设定内容

      "Enable Block Cookies":阻止所有请求 Cookie 的发送和接收
      "Only for selected locations":透过 Add 阻止指定请求 Cookie 的发送和接收

  • Map Remote Settings (设定远程映射)
      如果拥有应用程序的开发版本
      并且希望能够浏览以及从开发版本中获取一些请求
      则 Map Remote 将非常实用
      Map Remote 会根据映射更改请求站点
      以便从新站点提供回传内容,就跟原始请求一样
      可以透过 Import/Export 来汇入或汇出设定内容

      "Enable Map Remote":透过 Add 来进一步设定远程映射的内容

      通过此设定就可以从另一个站点提供全部或部分站点
      每个站点匹配包含 Protocol, Host, Port, Path 与 Query

      而映射的类型也可以简单地分为几种

    • 将目录映射到目录

      e.g. xk72.com/charles/ 映射到 localhost/charlesdev/

    • 将文件映射到文件

      e.g. xk72.com/charles/download.php 映射到 abc.com/testing/test.html

    • 将带有文件模式的目录映射到目录

      e.g. xk72.com/charles/*.phplocalhost/charlesdev/

  • Map Local Settings (设定本地映射)
      如果必须将文件上传到网站以测试结果
      那透过 Map Local 将大大加快开发和测试速度
      Map Local 可以使用本地文件 就像是远程网站的一部分一样
      本地文件的内容像正常的远程响应一样返回给 Client 端
      可以透过 Import/Export 来汇入或汇出设定内容

      "Enable Map Local":透过 Add 来进一步设定本地映射的内容

      每个站点匹配包含 Protocol, Host, Port, Path 与 Query

    • 补充说明

      Map Local 不会执行动态文件,因此如果文件中有任何脚本,脚本将按原样返回到浏览器,这可能不是预期的结果。如果想使用动态文件,就好像它们是远程网站的一部分一样,可以使用 Map Remote。

  • Rewrite Settings (设定重写)
      Rewrite 可以创建请求和响应来修改他们的规则
      而在左侧显示的 Rewrite 清单可以单独激活和停用
      每个集合都包含了 Location 和 Rule 的设定内容
      可以透过 Import/Export 来汇入或汇出设定内容

      "Enable Rewrite":透过 Add 来进一步设定重写的内容

      每个站点匹配包含 Protocol, Host, Port, Path 与 Query

      每个规则可以根据 Request, Response 进行设定
      接着就可以进一步定义 搜索(MAtch) 或 替换(Replace)

    • 使用技巧

      当 Rewrite 无法正常运作时,可以尝试添加一个非常基本的规则,这样就可以查看规则是否与请求完全匹配。并且透过选项栏 "Window""Error Log" 来获取一些信息

  • Black List Settings (设定黑名单)
      Black List 用於仅屏蔽指定的域名
      透过新增来输入应该被阻挡的域名
      被列入黑名单的域名的所有请求将被阻挡
      可以透过 Import/Export 来汇入或汇出设定内容

      "Enable Block List":透过 Add 来进一步设定黑名单的内容
      "Blocking action":透过选取来决定当请求不匹配时的处理方式
        "Drop connection":从浏览器中关闭连接
        "Return 403 response":浏览器返回错误页面

    • 补充说明

      如果一个请求同时匹配黑名单与白名单 则该请求将被阻止

  • Allow List Settings (设定白名单)
      Allow List 用於仅允许指定的域名
      透过新增来输入仅被允许的域名
      被列入白名单的域名之外的所有请求将被阻挡
      可以透过 Import/Export 来汇入或汇出设定内容

      "Enable Allow List":透过 Add 来进一步设定白名单的内容
      "Blocking action":透过选取来决定当请求不匹配时的处理方式
        "Drop connection":从浏览器中关闭连接
        "Return 403 response":浏览器返回错误页面

    • 补充说明

      如果一个请求同时匹配黑名单与白名单 则该请求将被阻止


结尾

这周的内容主要是在介绍 Charles 的 Tools 选项栏中的功能
但是因为内容过多所以将 Tools 的分享内容给拆分了两个部分
下周小弟将会把 Tools 的後半段功能分享完毕

而小弟也是新手使用的分享文
所以介绍的内容可能有遗漏或是错误,还请各位大哥大姐提点
小弟将继续往下周迈进。 ─=≡Σ((( つ•̀ω•́)つ


参考文献

官方网站 (载点)


<<:  Grid笔记

>>:  拿 ml5 来练习 如何附加自己的分类在别人的情绪之上 (五)

110/02 - 只有 StartActivityForResult 可以用吗?

前一天讲到合约(Contracts)和启动器(Launcher)取代StartActivityFor...

就决定是你了 - 阵列系列I

图片来源:tooto1985/js-array-operations 内心剧场之胡言乱语 万能又好...

Day 27 Quantum Protocols and Quantum Algorithms

Quantum Key Distribution Polarisation can be one o...

Python 练习

今天我们要来做个小练习,因为比较基础的语法也都交给大家了,我们已经可以用那些语法来解决一些数学问题了...

26.unity打字机(StartCoroutine)

实现打字机功能:字出现之间会有时差,让一个字接一个字出现。 回圈{ //画面texe += 清单[第...