Charles Debugging Proxy Application

For a long time, I have been using Fiddler or the browser developer tools to resolve issues that naturally come along in web development, however, that was before I was introduced to Charles.

Charles, written by Karl von Randow at XK72 Ltd., is available as shareware for Windows, OS X, and Linux. It is an HTTP and SOCKS proxy server. Proxying requests and responses enables Charles to inspect and change requests as they pass from the client to the server, and the response as it passes from the server to the client.

The primary function of Charles and pretty much any of the other developer tools provided by browsers is to record the requests and responses of the current session for your inspection and analysis.  Charles then goes beyond the capabilities of standard dev tools by providing a host of tools.

Some Key Features

  • Bandwidth Throttling – Simulates slower Internet connections including latency.
  • Load Testing – Nuf said.
  • Breakpoints – Intercept requests and responses before they are passed through Charles. You can examine and edit the request or response and then decide whether to allow it to proceed or to block it.
  • SSL Proxying – Create a man-in-the-middle HTTPS proxy, enabling you to view in plain text the communication between web browser and SSL web server.
  • Reverse Proxy – Creates a web server on a local port that transparently proxies requests to a remote web server.
  • Port Forwarding – Any TCP/IP or UDP port can be configure to be forwarded from Charles to a remote host.
  • No Caching – Prevent client applications, such as web browsers, from caching any resources.
  • Block Cookies – Block the sending and receiving of cookies.
  • Map Remote – Change the request location, per the configured mappings, so that the response is transparently served from the new location as if that was the original request.
  • Map Local – Use local files as if they were part of a remote website.
  • Rewrite – Create rules that modify requests and responses as they pass through Charles.
  • DNS Spoofing – Test a domain name as if it points to a different IP address.
  • Mirror – Save responses to disk as they are received, creating a mirror copy of websites as you browse them.
  • Client Process – Shows the name of the local client process that is responsible for making each request.
  • Validate Tool – Validate the recorded responses by sending them to the W3C HTML validator, W3C CSS validator and W3C Feed validator.

Give it a shot. I think you will find it a valuable addition to your dev tool box and you may never return to your previous tools.


This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s