Charles Web Debugging Proxy 2.5 review

by on

Charles is an HTTP proxy / Reverse Proxy / HTTP monitor that enables a developer to view all of the HTTP traffic between their machin

License: Shareware
File size: 788K
Developer: Karl van Randow
0 stars award from

Charles is an HTTP proxy / Reverse Proxy / HTTP monitor that enables a developer to view all of the HTTP traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).

Charles can act as a man-in-the-middle for HTTP/SSL communication, enabling you to debug the content of your HTTPS sessions.

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).

Charles is especially useful for Macromedia Flash developers as you can view the contents of LoadVariables, LoadMovie and XML loads. More about Charles and Flash.

Charles is also 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.

Here are some key features of "Charles Web Debugging Proxy":
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 encrypted HTTPS traffic in plain text. Enables you to view requests and responses in plain text even when communicating with an SSL secured web server.
Reveal unexpected requests, such as typos and 404s.
View requested images.
Bandwidth 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 (bandwidth simulator)
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.
HTTP 1.1 support - including keep-alive, chunking and content-encodings including gzip, compress and deflate.
External proxy support - configure an proxy for Charles to use to access the Internet
NTLM authentication support (Windows NT Challenge Response Authentication / Integrated Windows Authentication)
Automatic configuration of Windows Internet Proxy settings.
Search all headers and bodies for keywords.
Port forwarding support, allows any protocol to be forwarded by Charles and debugged.
Unicode and other charset encoding/decoding support.
AJAX debugging (Asynchronous Javascript and XML) and XMLHTTP debugging
AMF parsing to help debug Flash Remoting
Firefox proxy autoconfiguration
Automatic Update Checking

Java 1.4.2 or later

What's New in This Release:
AMF / Flash Remoting
Recover from malformed UTF-8 in AMF parsing, and still display string
Added AMF summary in addition to AMF detail, to view AMF data as an RPC

New and changed Viewers for different file types
FLV viewer
Header viewers, including cookies and query string
Multipart body viewers
Show image dimensions in image viewer

User Interface
Fixed UI deadlocks
File choosers unified so current directory is consistent
Repeat option in event contextual menu to repeat the request
Option to allow host directly from ACL alert dialog
Can remove events from the tree (using delete key or contextual menu)
Allow selecting multiple nodes in trees and view summary stats
Fix JTreeTable handle clicking behaviour on Mac OS X
Keyboard short cuts to activate the different tabs in the session frame
Improved layout of tables: column widths are now smarter
Changes to calculation of download speeds and show more information on general tab
Improvements to behaviour of internal frames wrt closing, reopening and being maximised or not
Save All option on path/host/multiple selections
Sequence view filtering improvements: regex options and max rows
New dimmed icon for requests that are still loading

Added support for SEARCH webdav method and any future different methods / schemes
Reduced memory usage
Increased maximum memory size from 64MB to 256MB
Added Recording limits option to record only the last X events
Host matching now supports full glob wildcards and optional port matching
Fix Client closed connection reporting for large response bodies.
Reverse proxy options extended. Preserve host header now works. Rewrite redirects now an option. Rewrite redirect now uses original Host header instead of guessing correct URL.
Rewrite filter refactored - now continues using set for a request even if the hostname has been rewritten by that set and no longer matches.

Browser Integration
Fix Firefox installation detection if having to use manual profile configuration
Windows proxy settings now changed for all network connections rather than just local LAN (ie. now includes dial up and VPN)

NTLM Authentication
Improved support for NTLM proxy (as opposed to website) authentication
NTLM using HTTP 1.0 support
External NTLM proxy authentication for SSL

Charles Web Debugging Proxy 2.5 search tags