Charles is a web proxy (Reverse Proxy/HTTP monitor/HTTP proxy) application that allows developers to view the SSL/HTTPS and HTTP traffic between the Internet and their computer. This includes responses, HTTP headers, and requests. The program works by accessing the Internet then records and shows all the necessary information received and sent between the server and client/web browser.
Charles features SSL Proxying. It can work as the middleman for SSL/HHTP communication. This provides users the ability to debug HTTPS session content. This web proxy program also offers Bandwidth Throttling. By throttling bandwidth, the program is capable of simulating the speed of the modem. This feature also allows the introduction of latency. The application can also be used for XML developments like XMLHTTP and AJAX. It allows developers to view the actual XML flowing between the server and client. The program also supports JSON-RPC, SOAP, and JSON, which allows it to display them in tree format for debugging and viewing.
This web proxy application also works with LoadMovie, LoadVariables, and XML Loads providing support for Adobe Flash developers. It has support for Flash Remoting (AMF3 and AMF0) as well. Charles also offers settings for Auto-configure Browser as well as System Proxy. This includes Mac OS X system proxy settings, Windows system proxy settings, and Mozilla Firefox.