Charles is a powerful and versatile Java-based HTTP/ HTTPS proxy which can display a great deal of information about your web traffic. And that includes JSON, JSON-RPC and SOAP, Flash Remoting (AMF0 and AMF3) and more, as well as the regular HTTP/ HTTPS requests and responses.
The program includes a Firefox addon, which means there are no real configuration hassles. Just launch it, approve the addon, and Charles will immediately begin tracking your Firefox activities. Browse a URL of interest and you'll be able to watch the traffic details as it's analysed in real time.
This starts with a Structure tab, where your browsing is organised by URL. Clicking any of these provides a list showing every element downloaded, with assorted details (response codes, MIME types, header and body sizes, download times and more). A Chart tab gives you a more visual check on download times, while an Overview provides plenty of extra timing information (connection times, latency, DNS delays and more).
Alternatively, clicking the Sequence tab displays all your traffic at once. This is probably way too much information, but fortunately you can filter it to display traffic related to a domain, a file type, a response code or whatever else you like. Again, any particular request can be analysed in multiple ways, this time even including a Response tab which can display the response in its raw form, as text, hex, an image (if appropriate) and more.
There are also plenty of useful tools. A bandwidth throttling option helps you see how your site feels on slow internet connections; a "repeat" option lets the program re-run a request at a click (no need to reset and reconfigure the same web page each time); "repeat advanced" allows you to make repeated and concurrent requests, for load testing; and of course you can intercept and edit particular requests as you like.
But perhaps best of all, while this sounds like it's going to be complex, it really isn't. The author says "Charles is intended to be a dive-in piece of software", and we think he's right. There's plenty to learn, but no frustrating setup or configuration issues - we were using the program productively right away.
Version 3.10.2 (Version History):
- SSL improvements to workaround servers that don't support TLS 1.2 (this became a problem in 3.10 under Java 8)
- Improve initial focus in dialogs (so you don't need to click into the first text field so much)
- Copy cURL Request improvements: includes more headers, use --data instead of --data-binary when appropriate, and other minor improvements that should make your cURLing better.
- HAR: support HAR files produced by Chrome