<html>
<head>
<title>Charles README</title>
<style type="text/css">
<!--
BODY {
text-align: center;
background-color: #ffffff;
margin-bottom: 50px;
}
TD {
font-family: Arial, Sans-serif;
font-size: 20px;
}
H1 {
font-family: Arial, Sans-serif;
font-weight; bold;
font-size: 50px;
text-align: center;
color: #cc9966;
border-top: 2px solid #cc9966;
border-bottom: 2px solid #cc9966;
}
H2 {
font-family: Arial, Sans-serif;
font-size: 30px;
text-align: center;
color: #cc9966;
border-top: 1px solid #cc9966;
border-bottom: 1px solid #cc9966;
margin-top: 30px;
text-decoration: none;
}
A {
color: #cc9966;
}
A:visited {
color: #996633;
}
A:hover {
color: #6699cc;
}
A:active {
color: #cc9966;
}
P {
padding-top: 10px;
}
.quote {
margin-left: 25%;
margin-right: 25%;
text-align: center;
font-style: italic;
font-size: 15px;
}
.heading2 {
font-family: Arial, Sans-serif;
font-size: 40px;
}
TABLE.content {
width: 600px;
}
-->
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" class="content"><tr><td>
<h1>Charles</h1>
<p>
Charles is an HTTP proxy / HTTP monitor that enables a developer to view all of the HTTP traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).
</p>
<p>
Charles can also simulate modem speeds by effectively throttling your bandwidth and introducing latency, so that you can experience an entire website as a modem user might.
</p>
<p>
Charles is especially useful for Macromedia Flash developers as you can view the contents of LoadVariables, LoadMovie and XML loads.
</p>
<h2>Installation</h2>
<p>
Once you've unzipped the zip file you downloaded from <a href="http://www.xk72.com" target="blank">xk72.com</a> you have installed Charles.
You may need to install Java (JDK or JRE) if you do not already have it installed, see <a href="http://www.xk72.com/charles" target="blank">xk72.com</a>
for more information.
</p>
<h2>Configuration</h2>
<p>
When Charles is run it sets up an HTTP Proxy server on port 8888 (by default). If you are using Internet Explorer on Windows, Charles will attempt
to auto configure IE with the correct proxy setting, see <a href="#autoproxy">Automatic Proxy Configuration</a>. Otherwise you will need to configure
the proxy settings manually, see below.
</p>
<p>
<b>Finding Proxy Settings</b><br>
Your browser's proxy settings are located in different places in different browsers.
</p>
<p>
<i>Netscape</i> Use the Preferences menu option (usually in the Edit menu) and then look
under Proxies.
</p>
<p>
<i>Internet Explorer</i> Use the Internet Options menu option in the Tools menu, go to the Connections tab and click LAN settings (if you are usually Dialup Networking you'll
need to go to the settings for that connection instead).
</p>
<p>
<b>Configuring the Proxy</b><br>
Charles is an HTTP proxy and an HTTPS proxy. You normally only need an HTTP proxy but HTTPS can be useful if you are working with HTTPS / SSL etc.
</p>
<p>
In the hostname field enter <code>127.0.0.1</code>, which is always the IP address of your computer. In the port field enter <code>8888</code>, which
is the proxy port that Charles uses by default.
</p>
<p>
<b>Note:</b> You will need to turn-off the proxy settings when you stop running Charles otherwise your web browser will appear to be broken! This can be a
hastle, which is why the Automatic Proxy Configuration on Internet Explorer / Windows is so useful.
</p>
<p>
<a name="autoproxy"></a><b>Automatic Proxy Configuration</b><br>
On Internet Explorer and Windows, Charles will attempt to automatically configure your proxy settings when it is started, and unconfigure
them when it is quit. For this to work you must close all IE windows before starting Charles and after closing Charles.
</p>
<p>
Charles does this by changing a key value in your Windows registry. If you want to disable this feature, remove the <code>jRegistryKey.dll</code> file from
the Charles folder.
</p>
<h2>Running Charles</h2>
<p>
<i>Windows</i> Double-click the <code>Charles.exe</code> file.
</p>
<p>
<i>MacOS X</i> Double-click the <code>charles.jar</code> file in the lib directory. You may need to wait for up to 30 seconds for Charles to start.
</p>
<p>
<i>Linux</i> From the lib directory type <code>java -jar charles.jar</code>.
</p>
<h2>Using Charles</h2>
<p>
Once you have configured your proxy and run Charles you are ready to go. The first window you will see is the error log window, which displays
any errors Charles encounters; such as unknown host names or connection timeouts. To start viewing the HTTP requests and responses go to the
File menu and choose <code>New Session</code>. This will open a new window which will start Recording all of the HTTP traffic through the proxy.
</p>
<p>
When you use your web browser you should see an item appear in the tree on the left of the window for each host that you visit. Expand the tree
and click on nodes in the tree to view the data.
</p>
<h2>Throttling</h2>
<p>
The throttling configuration is in the Preferences. You turn on and off throttling in the Charles menu.
</p>
<p>
<a href="http://www.xk72.com/charles/throttle.html" target="_blank">Click here for more information on throttling and modem simulation.</a>
</p>
<h2>Plugins</h2>
<p>
Charles ships with several plugins that perform useful functions such as blocking cookies. See the plugins screen in the preferences for details
of each plugin.
</p>
<h2>Website</h2>
<p>
Download the latest releases and see more information on Charles on the official Charles website:
<a href="http://www.xk72.com/charles/" target="_blank">www.xk72.com/charles</a>.
</p>
<h2>What is jRegistryKey.dll</h2>
<p>
The <code>jRegistryKey.dll</code> is used by Charles on Windows to automatically configure your proxy settings when Charles is run and quit. If you do not want
this functionality you may delete the <code>dll</code> without damaging Charles. See <a href="#autoproxy">Automatic Proxy Configuration</a>.
</p>
<h2>After using Charles I can no longer use my web browser</h2>
<p>
Have you turned off the proxy in your browser settings? Once Charles is quit the HTTP proxy is no longer running, and your browser
is probably giving no indication of what's wrong other than refusing to load the page.
</p>
<p>
Always turn off the HTTP proxy in your browser settings after quitting Charles, unless you are using <a href="#autoproxy">Automatic Proxy Configuration</a>
in which case you should close all of your IE windows after using Charles.
</p>
</td></tr></table>
</body>
</html>
