HTTP Monitor, Throttling, Reverse Proxy as Web App debugging tool (No that’s NOT my new nickname!)
Tech-Weblog by Christoph C. Cemper pointed me to Charles which is Java shareware app ($50 paypay after 10 days) with the the following list o’ features:
- Cookies are shown in the HTTP headers, so you can see exactly what cookies you are sending and receiving.
- Every request and response is recorded in Charles. Redirects that are often too quick to see when
testing with a web browser can be seen in Charles. Requests from applications other than your web browser
(such as Flash movies) can also be seen. - Request and response sizes are shown in Charles, so you can see how big each request was.
- Assets loaded from an HTML page are recorded so that you can see how many images etc are loaded by a page, and where from.
- All files can be viewed, including JavaScript files, CSS files, HTML files etc.
- Mirror all responses to disk, recording your session.
- Blacklist sites so that requests are blocked.
- See the results of caching by seeing cached responses (304 Not Modified), and requests containing
last modified dates (IfModifiedSince). - Disable caching by removing cache related headers from requests and responses as they pass through Charles,
ensuring that you are always requesting the latest file. - See whether a cache has served your request by looking for cache-hit HTTP headers.
- View the encrypted HTTPS communications.
- Reveal unexpected requests, such as typos and 404s.
- View requested images.
- Throttle your web connection to a specified bytes/second speed, and millisecond latency. This
enables you to simulate modem conditions on a high speed internet connection - Spoof DNS name to ip mappings so that you can test a domain name before it has gone live. Very useful for testing your virtual hosting.
- Export to CSV all of the summary data captured by Charles for analysis and reporting in Excel
- Reverse proxy creates ports on the localhost that act as regular HTTP servers, but forward all requests to a specified web server.
- SSL debugging enables you to view requests and responses in plain text even when communicating with an SSL secured web server.
- HTTP/1.1 support – understands some HTTP/1.1 specific responses, and forces no keep-alives
I can think of lots of times when I wanted to see just what was going on between the app (or broswer) and the server, and the Throttle could be used to test “What if I only had a dial up line rather that this 10 Terabit Ethernet connection” scenario testing. Lot’s of geeky goodness here.