From Karl von Randow:
Charles is a web proxy (HTTP Proxy or 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 or 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 diagnose and fix problems.