Charles is an HTTP proxy / HTTP monitor / Reverse Proxy 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).
Charles can act as a man-in-the-middle for HTTP/SSL communication, enabling you to debug the content of your HTTPS sessions.
Charles simulates modem speeds by effectively throttling your bandwidth and introducing latency, so that you can experience an entire website as a modem user might (bandwidth simulator).
Charles is especially useful for Macromedia Flash developers as you can view the contents of LoadVariables, LoadMovie and XML loads. More about Charles and Flash.
Here are some key features of "Charles Web Debugging Tool":
· Cookies are shown in the HTTP headers, so you can see exactly what cookies you are sending and receiving.
· Every request and response is recorded in Charles. Redirects that are often too quick to see when testing with a web browser can be seen in Charles. Requests from applications other than your web browser (such as Flash movies) can also be seen.
· Request and response sizes are shown in Charles, so you can see how big each request was.
· Assets loaded from an HTML page are recorded so that you can see how many images etc are loaded by a page, and where from.
· Mirror all responses to disk, recording your session.
· Blacklist sites so that requests are blocked.
· See the results of caching by seeing cached responses (304 Not Modified), and requests containing last modified dates (IfModifiedSince).
· Disable caching by removing cache related headers from requests and responses as they pass through Charles, ensuring that you are always requesting the latest file.
· See whether a cache has served your request by looking for cache-hit HTTP headers.
· View encrypted HTTPS/SSL data.
· View encrypted HTTPS traffic in plain text. Enables you to view requests and responses in plain text even when communicating with an SSL secured web server.
· Reveal unexpected requests, such as typos and 404s.
· View requested images.
· Throttle your web connection to a specified bytes/second speed, and millisecond latency. This enables you to simulate modem conditions on a high speed internet connection (bandwidth simulator)
· Spoof DNS name to ip mappings so that you can test a domain name before it has gone live. Very useful for testing your virtual hosting.
· Export to CSV all of the summary data captured by Charles for analysis and reporting in Excel
· Reverse proxy creates ports on the localhost that act as regular HTTP servers, but forward all requests to a specified web server.
· HTTP/1.1 support - including keep-alive, chunking and content-encodings including gzip, compress and deflate.
· External proxy support - configure an proxy for Charles to use to access the Internet
· NTLM authentication support (Windows NT Challenge Response Authentication / Integrated Windows Authentication)
· Automatic configuration of Windows Internet Proxy settings.
· Search all headers and bodies for keywords.
· Transparent forwarding support, allows any protocol to be forwarded by Charles and debugged.
· Unicode and other charset encoding/decoding support.
· Charles is a Java application, it requires the JRE or JDK from Sun. If you don't already have it you can download the JRE from http://java.sun.com/j2se/1.4/download.html, version 1.2 or later is required (1.4 or later is required for full SSL functionality).
· You probably already have the JRE or JDK on your computer as it comes with many operating systems. When you try to run Charles it will notify you if you don't have the necessary software.