HTTP Monitoring with Charles
With Ajax applications, there's often a need to see what information is being transported back and forth. Am I sending what I'm supposed to? Am I getting back the right response?
Alternative otions include firefox addons Live HTTP Headers and HttpFox. These are great options for quick and dirty sniffing but for a more thorough and featureful solution, there's only one tool that I go to: Charles.
Charles ia a cross-platform desktop application that acts as a proxy for all web requests, no matter what browser they come from; it can even inspect Flash-originated requests and Adobe AIR application requests. As the proxy, it's able to see all the information flowing back and forth and provide a detailed peek at every request and response.
One of my favourite features — and where it stands out from the Firefox addons — is the ability to view XML, JSON and even AMF data structures. It's easy to see right away if a request was successful or not and you get access to all of the request and response headers.
Firefox manages its own proxy server settings and requires a Charles addon which can be downloaded from the Charles web site. This will allow Charles to automatically turn on the proxy with no other intervention.
I have two minor issues with it, though. For one, Charles can cause SSL certificate error messages for HTTPS connections. Secondly, while it can replay a request (and allow you to edit what information is sent in that request), you can't see that replay within the browser. For this reason, I like to use Live HTTP Headers in this situation, which does allow you to do this, although its interface is awkward and prone to generate server errors.
Otherwise, Charles is a staple of my toolset and one o f my favourite tools for request and response inspection.