WEB 调试代理应用程序

适用于windows,mac OS和Linux

代理设置

控制作为Charles核心的代理服务器的操作。

端口

代理服务器在两个端口上运行,一个用于HTTP代理,一个用于SOCKS代理。 这些默认值通常很好。 如果您已经使用系统上的端口之一进行操作,则可能需要更改它们。

动态代理端口使您可以让Charles在启动时选择可用的端口。 如果您在多用户环境中运行Charles,这将很有用。

解密SSL

您可以打开或关闭解密SSL功能。 默认为开。 如果您将其关闭,则Charles不会干扰SSL连接,您将看到的只是Charles中的加密数据。

自动浏览器配置

Charles列出了可以自动配置代理设置的浏览器和操作系统。 这是一项非常有用且必不可少的功能,否则,每次您想使用Charles时,都必须配置和重新配置浏览器的代理设置。

您可以打开/关闭启动Charles时自动配置的浏览器/ OS代理设置。 您可以在Charles运行时打开/关闭代理设置配置,方法是使用“代理”菜单中的选项。

旁路域名

这是使用代理(例如Charles)时要绕过的主机名的列表。 该列表将传递到浏览器/ OS中的代理设置。 通常,可以使用一个空列表,但是如果您有无法通过Charles访问的主机名,则可以在此处添加它们。

旁路域名列表是一个用空格分隔的主机和域名列表。如果你输入一个像xk72.com这样的域名,大多数浏览器会认为这意味着也要绕过*.xk72.com。

SOCKS透明代理

SOCKS透明代理在Charles 3.1中引入。 阅读有关在HTTP vs SOCKS代理中使用SOCKS透明代理的原因的更多信息。

在“代理”菜单中打开“代理设置”。 启用SOCKS配置的最简单方法是单击“快速配置”面板中的“ SOCKS代理模式”按钮。 这将启用SOCKS代理,并将您的浏览器配置为使用SOCKS而不是HTTP。

要观察到不同的行为可能很难。 最简单的方法是访问http://maps.google.com/并放大地图。 单击查尔斯树中的HTML页面(可能是<默认>),然后切换到“图表”视图。 看看图表中并行出现了多少个“ mt?n = ...”的图像请求。 比较一下HTTP和SOCKS模式。 您应该看到使用HTTP进行的大约2个并形映射图块获取,而使用SOCKS进行的是8次。

HTTP与SOCKS代理

传统上,Charles(3.1版之前的版本)主要充当HTTP代理,同时还具有SOCKS代理功能。 但是,使用HTTP代理时会出现一些性能问题,导致在使用或不使用Charles的情况下,浏览器的行为都不同。

请注意,SOCKS代理在Charles中还不是默认的,因为它才刚刚可用。

浏览器限制了它们与网页服务器之间打开的连接数,以免服务器超载。 HTTP / 1.1规范指出,浏览器应将自身限制为每个服务器2个连接。 对于HTTP / 1.0,不同的浏览器具有不同的限制。

此限制可能会导致网站加载问题,因为一次只能下载2个文件(页面/图像/ css / javascript等)。 为解决此问题,开发人员在不同服务器之间分配资源。 例如,http://maps.google.com/从mt0.google.com到mt3.google.com加载地图图块。 那是4个不同的服务器名称,因此即使这些名称实际上都可以解析为相同的IP地址和同一台物理服务器,浏览器也将它们视为不同的网站,每个网站允许2个连接。 这意味着它可以同时加载8个地图图块图像,而不是通常的2个。

当浏览器使用HTTP代理(例如HTTP代理模式下的Charles)时,它们实行了各种不同的限制,并且还限制了与代理服务器本身的连接总数,从而巧妙地改变了网站的行为和性能。 对于Charles的用户而言,这是一件坏事,因为Charles打算对网页浏览器的常规性能产生尽可能小的影响。

相反,当浏览器使用SOCKS代理时,在计算连接限制时将忽略该代理,因此浏览器的行为和性能是正常的。

因此,Charles现在支持像HTTP代理一样容易地使用SOCKS代理协议。