启动 Charles 后,第一次 Charles 会询问你是否把Charles设置为系统的代理,若是此时你忽略了这个询问窗口,你能够在后期设置的;将 Charles 设置成系统代理:选择菜单中的 “Proxy” -> “Mac OS X Proxy/windows proxy” 来将 Charles 设置成系统代理。css
视图结构html
Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。前端
须要注意的是,Chrome 和 Firefox 浏览器并不必定使用的就是本机,多是一些代理工具,而 Charles 是经过将本身设置成代理服务器来完成资源记录的,因此若是你的charles没法截取 Chrome 和 Firefox 浏览器的网络请求内容,须要在浏览器里作下修改。在 Chrome 中设置成使用系统的代理服务器设置便可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。webpack
chrome://settings/?search=%E4%BB%A3%E7%90%86
ios
SwitchyOmega链接pac;或者直接链接charles代理; 这样绕过系统代理配置;对于代理配置冲突的状况下可使用SwitchyOmega,切换很是方便。git
charles可使用系统hosts或三方hosts工具设置的系统hosts配置,也可使用自带的map remote功能实现映射功能。github
chls.pro/ssl 安装证书 , ios必须使用safari ,第一步在“描述文件与设备管理”中安装, 而后在通用 - 关于本机 web
证书信任设置 启用证书 (fiddler的证书安装和charles基本类似)chrome
map local情景:一个项目上线后,发现js或者css bug了,怎样调试?线上项目的静态文件没法直接编辑,有何方法在不改变其余参数的状况下直接用本地的开发文件替换线上的文件从而方便调试?windows
tools->>map local
Save Response… map local能够结合这个功能来mock,稍加修改就能够模式想要的测试数据。
map remote情景:进行一个需求开发,测试环境是:lvxing.st.meituan.com,测试完成,前端开发者上线了,如今QA须要跟踪线上状况,如何切到线上环境?
tools->>map remote
Bypass proxy settings for these Hosts & Domains 绕过charles的配置, 这样charles上的这个配置就失效了,可是不影响hosts工具的配置。
出现冲突时,默认hosts的优先级高
rewrite功能重写对应的内容,主要能够对某些匹配请求的header、host、url、path、query param、response status、body进行rewrite。
rewrite能够作不少手脚。
charles黑名单和白名单工;black list:阻止对匹配HOST的请求;能够直接把请求丢掉,也能够直接返回403状态码;
修改服务器返回内容 www.jianshu.com/p/f7ceb7992…
出现这种状况,charles解析不出path,咱们就无法创建映射。 具体的解决方案为在proxy中的SSL Proxying setting中钩上Enable SSL Proxying,而且将要解析的host加上
safari浏览器能够经过信任证书来解决, 可是在app中缺乏“继续访问不可信站点的设置”。
fiddler 是这样解决的 ignore server certificate errors
referer的正确英语拼法是referrer因为早期http规范的拼写错误,为了保持向后兼容就将错就错了,但也有新的网络技术纠正此问题,因此拼法不一
最基本的写法就是一个function函数
function FindProxyForURL(url, host) {
var lastPos;
var host_tmp = host;
var prefix = '*.';
do {
if (autoproxy_host.hasOwnProperty(host_tmp)) {
return 'PROXY proxy.oasec.mycomp-int.com:8080';
}
lastPos = host.indexOf('.') + 1;
host = host.slice(lastPos);
host_tmp = prefix.concat(host);
} while (lastPos >= 1);
return 'DIRECT';
}
复制代码
本想用工具快速处理一下代理,作个静态页面映射方案,但静态资源依赖逻辑工具是不能提供的,即便用工具的一些规则实现了静态资源定位成本也是至关高。 因此仍是要写一个服务像webpack-dev-server。
很是完整charles教程 不要本身瞎研究,这篇以及内容连接已经整理的很是好