• Charles的奇巧淫技


    大家好,我是 dom 哥。今天讨论一下 Charles 的高级用法。

    Charles 是 mac 电脑的一个网络代理软件,也是我平时开发常用的一个工具,用过的都说好😁。

    本文不是 Charles 的入门介绍,而是针对一些特殊使用场景的摸索和总结。

    Tools > Map Remote

    Map Remote 工具能够将请求映射到另一个服务器,它可以改变请求的目的地,HTTP 请求会透明的映射到新地址,就像直接请求新地址一样。

    例如你可以将 https://A.com/a1/a2 映射到 http://B.com/b1/b2

    💡 最常见的一个使用场景是将线上资源映射到本地开发服务器 www.com -> localhost,以此实现本地调试线上。

    Tools > Map Local

    Map Local 工具能够将请求映射到本地文件,也就是将本地文件作为某个请求的返回。Map Local 和 Map Remote 相辅相成,一个映射到服务器,一个映射到本地文件。

    如果说 Map Remote 是大面积覆盖,那么 Map Local 就是单点爆破。这对快速调试某个线上静态资源很方便。

    💡 比如把某个线上 js 文件下载到本地,修改修改,然后通过 Map Local 这个本地文件映射就可以直接看到效果进行验证。不必走完 CI,CD 这一套焦头烂额的等待了。

    Tools > Rewrite

    Rewrite 工具能够让你重写覆盖请求的任意部分,包括 request 和 response 的 header 和 body。

    💡 下面是一些使用场景:

    • 重写 response header 实现 cors 跨域
    • 重写 cookie 实现一些校验
    • 重写 body 实现类似 Map Local 的效果

    Tools > DNS Spoofing

    DNS 欺骗工具可以将一个域名映射到一个 IP 地址下,和系统 hosts 文件的作用一样。

    实际上,在 Map Remote 里配置 example.com -> 20.205.243.166 能实现相同的效果。

    💡 有了这个功能,我卸载了 hosts 管理软件。

    Proxy > External Proxy

    Charles 本身是一个代理,它还支持再配一层外部代理,通常是 VPN。请求会先过 Charles,再走外部代理。

    💡 例如,想要抓包的话需要开启 Charles 的 macOS Proxy,此时 Charles 会自动设置系统代理。

    同时可能开了 ClashX 等 VPN 软件。那么就需要配置上 External Proxy:

    以此实现抓包,范强两不误。

    觉得不错点个小赞哦~🌹

  • 相关阅读:
    FPGA纯verilog实现8路视频拼接显示,提供工程源码和技术支持
    你不知道的JavaScript ------- 回调
    STM32 +合宙1.54“ 电子墨水屏(e-paper)驱动显示示例
    纳什均衡求解器
    LeetCode——Weekly Contest 319
    vsftpd使用
    Ubuntu20运行SegNeXt代码提取道路水体(一)——从零开始运行代码过程摸索
    【计算机架构】python并发编程:多线程和线程池
    HCIP实验(06)
    腾讯WXG前端面经
  • 原文地址:https://www.cnblogs.com/iovec/p/charles.html