Charles - A Web Debugging Proxy for Windows, Mac OS, and Linux
Charles is an HTTP proxy/HTTP monitor/Reverse Proxy that enables a developer to view all of the HTTP and SSL/HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).
Features:
- SSL Proxying: Charles can act as a man-in-the-middle for HTTP/SSL communication, enabling you to debug the content of your HTTPS sessions.
- Bandwidth Throttling: Charles simulates modem speeds by effectively throttling your bandwidth and introducing latency, so that you can experience an entire website as a modem user might (bandwidth simulator).
- AJAX: Charles is useful for XML development in web browsers, such as AJAX (Asynchronous Javascript and XML) and XMLHTTP, as it enables you to see the actual XML that is flowing between the client and the server. Charles natively supports JSON, JSON-RPC and SOAP; displaying each in a simplified tree format for easy viewing and debugging.
- Flash: Charles is great for Adobe Flash developers as you can view the contents of LoadVariables, LoadMovie and XML loads. Charles also has native support for Flash Remoting (AMF0 and AMF3).
- Autoconfigure Browser & System Proxy Settings
Tools:
- No Caching Tool: It prevents client applications, such as web browsers, from caching any resources. Therefore requests are always made to the remote website and you always see the latest version.
- Block Cookies Tool: It blocks the sending and receiving of cookies. It can be used to test websites as if you have cookies disabled in your browser. Note that web spiders (such as Google) often don't support Cookies so the tool can also be used to simulate a spider's view of a website.
- Map Remote Tool: It changes 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 Tool: enables you to use local files as if they were part of a remote website. You can develop your files locally and test them as if they were live. The contents of the local file is returned to the client as if it was the normal remote response.
- Rewrite Tool: It enables you to create rules that modify requests and responses as they pass through Charles. Rules such as adding or changing a header or search and replace some text in the response body.
- Black List Tool: enables you to enter domain names which should be blocked. When your web browser tries to request any page from a blacklisted domain name it is blocked. You can also enter wildcards to block subdomains.
- DNS Spoofing Tool: Sometimes you want to test a domain name as if it pointed to a different IP address. For example, if you have set up a virtual host but the IP address change hasn't propagated through DNS yet, you can spoof it and test your virtual hosting immediately.
- Mirror Tool: It saves responses to disk as they are received, creating a mirror copy of websites as you browse them.
- Auto Save Tool: It automatically saves and clears the recording session at set intervals.
- Client Process Tool: It shows the name of the local client process that is responsible for making each request. The client process will usually be your web browser, such as firefox.exe, but there are many potentially unknown HTTP clients that the Client Process tool can help you discover.
- Repeat Tool: It lets you select a request and repeat it.
- Repeat Advanced Tool: It extends the Repeat tool with options for the number of iterations and concurrency. This is mostly useful for Load Testing.
- Edit Tool: It builds on the Repeat tool by allowing you to change the contents of the request before repeating it.
- Validate Tool: It can be used to validate the recorded responses by sending them to the W3C HTML validator, W3C CSS validator and W3C Feed validator.
- Command-line Tools:
-
- Convert: It enables you to convert files between different formats that Charles supports. For example, to convert a .chls file to a .xml file.
- SSL Root Certificate Export: Export the SSL Root Certificate that Charles has generated.
You might also like:
from Effect Hacking full article here