Using Charles
- Sessions(会话)
你的Session包含你所有记录信息。它被Session窗口所代表;默认情况下,当启动Charles时,将自动创建一个新的session。
当使用Charles时,你可能会 只需要一个简单session。直到你觉得需要多个sessions时:不要感到困扰。当你的session被撑满(或者太繁忙)时,你可以清除掉它(使用File -> Clear Session选项,或者工具栏中的扫帚图标)。
Session们可以保存,当然也重新打开(从File菜单中),当需要跟其他人交流分享时这会很有用。
- Recording(记录)
Recording是charles的主要功能。请求和响应被记录在当前Session中,以便你后续的检查和分析。
请求的记录依赖于charles的配置。通常,包含来自浏览器的所有http和https请求,以及你电脑上的其他应用的请求(此时需要同时配置了操作系统的全局代理)。并且还可能会包含来自 socket、sockets连接或者端口转发的数据。
如果关闭记录,charles依然会放行所有请求,只是不会被记录在session中以供你查看。
- Requests和response(请求和响应)
一个请求以及它的响应是charles记录中最基本的组成。
HTTP/HTTPS 的请求-响应对是一致的:请求来自你的电脑,发送到server,server返回响应。
对于一般的socket,请求-响应 保持__;这对于socket并不总是有用的。如果你需要进行大量socket层面的debug工作,你可能会考虑使用Ethereal。
- Viewing Requests(查看请求)
请求被记录后会显示在Session窗口。有两种方式显示session窗口:structure视图、sequence视图。
structure视图将请求根据host名称和host中的目录/路径来组织成树形结构。sequence视图将请求按照请求发生顺序组织起来。
当在请求视图中点击一个请求时,将展示请求的更多详细信息。
HTTP请求和响应的头部、报文体都始终可以以plain text 或者二进制(hex、ascii)形式显示。同时还有特定的增强视图来展示header和body:
- Header Viewers
- Query参数
- Form参数
- cookies
- authentication
- JSON格式的 Headers
- Body Content Viewers
- 树形XML或者格式化的文本
- AMF(actionscript 消息格式-Flash & Flex Remoting)
- Form 参数(包括Multipart forms)
- JSON
- 压缩过的数据-用以查看原始压缩报文体
- 保存 request和response
在导航视图中的请求中点击右键,打开附件选项。允许复制或保存你请求和响应体。如果选择多个请求,可以一键同时保存
- Focus
经常会有来自大量不同host的大量请求和响应存在于一个charles session中。通过Focus功能,可以根据关注与否将host区分开来。
在Structure 树中想要激活Focus功能的hostname上右键,并在菜单中选择Focus。Structure将会在顶部展示被聚焦的host,并把其他host合并到名叫Ohter Hosts的文件件里,在需要时可以展开此文件进行查看。
在Sequence视图中,可以选中Focused复选框,从而只展示被聚焦的host。
想看所有聚焦的host,或者需要编辑它们时,可以通过以下路径实现:View 菜单 -> Focused Hosts…