为什么我的调试代理报告 Google 响应包含垃圾内容

Why Does my Debugging Proxy Report Google Responses with Garbage Content

我正在使用 Charles 调试通过我网络上的移动设备发出的 HTTP 响应(即 iPhone 中没有查看源)。我注意到,当我向 google.com 发出请求时,Charles 报告了一堆看起来像垃圾的东西作为响应的内容。

我不是在寻求 charler 支持(或者,不是在这里询问——我已经向代理作者发送了支持票)。我想确切地知道 Google 在这里做什么。我不认为这是 gzip 编码(至少 headers 没有表明它是),但我不知道这是否是某种特殊的,non-standard 优化 Google 有,或者如果它是 HTTP/2 我不熟悉的一部分。

所以,考虑到我是一名在 90 年代后期学习 HTTP 的程序员——这些天 Google 通过网络发送什么 and/or 什么是好的了解现代的第一步 HTTP/2?

这是因为请求是通过 SSL 发出的。您看到的是加密流量。您需要通过转到代理 -> SSL 代理设置并将主机名添加到 SSL 代理选项卡下的位置列表来告诉 CharlesProxy 代理 Google 的请求。这将允许 Charles 在将流量转发到 Google.

之前对您进行 MITM 并解密流量

至少在 MacOS 上,您可能还需要信任 Charles 根证书。参见 https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/