Charles is a web proxy (HTTP Proxy / HTTP Monitor) that runs on your own computer. Your web browser (or any other Internet application) is then configured to access the Internet through Charles, and Charles is then able to record and display for you all of the data that is sent and received.

In Web and Internet development you are unable to see what is being sent and received between your web browser / client and the server. Without this visibility it is difficult and time-consuming to determine exactly where the fault is. Charles makes it easy to see what is happening, so you can quickly diagnose and fix problems.
Charles makes debugging quick, reliable and advanced; saving you time and frustration!
Key Features
SSL Proxying - view SSL requests and responses in plain text
Bandwidth Throttling to simulate slower Internet connections including latency
AJAX debugging - view XML and JSON requests and responses as a tree or as text
AMF - view the contents of Flash Remoting / Flex Remoting messages as a tree
Repeat requests to test back-end changes
Edit requests to test different inputs
Breakpoints to intercept and edit requests or responses
Validate recorded HTML, CSS and RSS/atom responses using the W3C validator
Charles Features
The following features are what I believe to be the key features of Charles. The best way to explore these features and to discover others is to download the free trial.
SSL Proxying
Charles can act as a man-in-the-middle for HTTP/SSL communication, enabling you to debug the content of your HTTPS sessions.
Bandwidth Throttling
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).
AJAX
Charles is useful for XML development in web browsers, such as AJAX (Asynchronous Javascript and XML) and XMLHTTP, as it enables you to see the actual XML that is flowing between the client and the server. Charles natively supports JSON, JSON-RPC and SOAP; displaying each in a simplified tree format for easy viewing and debugging.
Flash
Charles is great for Adobe Flash developers as you can view the contents of LoadVariables, LoadMovie and XML loads. Charles also has native support for Flash Remoting (AMF0 and AMF3).
Autoconfigure Browser & System Proxy Settings