这样我们就可以断点调试 https 请求了。
为什么可以实现断点功能呢?
这个很容易想明白,怎么请求、怎么响应都是 Charles 控制的,那想实现一个断点和编辑的功能,岂不是很容易么?
有的同学可能会问,移动端怎么调试呢?
其实是一样的,只不过移动端也要把 Charles 证书安装到自己的系统中,需要点击安装 charles 证书到移动设备:
他会提示你在手机设置代理服务器,然后下载 Charles 证书:
原理和我们在 PC 端下载 Charles 证书是一样的,后续流程也一样。
除此以外,chrome 还有一个浏览器插件可以更细粒度的控制代理,叫做 SwitchyOmega:
你可以配置若干个代理服务器,比如 charles 的代理服务器:
这个可以在 Charles 的 Proxy > Proxy Setting 里配置:
然后就可以配置什么 url 用什么代理,或者不用代理直接连接:
当你有多个代理服务器,或者想控制有的页面走代理有的不走的时候,就可以用这个插件来控制了。 总结
用 Charles 调试 https 请求是常见的需求,它需要安装 Charles 的证书到本地系统,然后信任,之后就可以抓到明文数据了。
原理就是 Charles 会使用服务器的证书来和服务器通信,然后发一个自己的证书给浏览器。
Charles 还有断点调试功能,可以修改请求和响应的数据。
移动端 https 调试也是同样的原理,只不过需要配置下代理和证书。
如果想切换代理服务器或者设置有的页面不走代理,可以用 Chrome 插件 SwitchyOmega 来控制。
会断点调试 https 请求还是很有意义的,比如改改 header、改改 body,看看会有啥效果,使用场景有很多。