Web debugging proxy tools are used by analysts, developers and testers to intercept and log traffic passing over a digital network or part of a network and to find where site performance bottlenecks are occurring. Charles, Fiddler and Wireshark are the three leading tools which enable web proxy debugging in a cogent manner.
In case you missed the first three parts of the blog, where we individually discussed the three tools in detail, please click on the links below:
Part 1: Charles
Part 2: Fiddler
Part 3: Wireshark
Now that we have come to the end, the fact remains that all the three tools, Charles, Fiddler and Wireshark do similar things – capture network traffic. However, some of the unique standpoints which separate them are as follows:
1. Network Packets
- Wireshark is a clear winner here since it captures any kind of a network packet. It can capture packet details below TCP/IP as well (HTTP being at the top)
- Charles is a paid tool. You can run the free version of the tool for 30 minutes, post which a new session is generated by default. Fiddler and Wireshark, in comparison are completely free versions
3. HTTP Proxy
- Wireshark has the capability to show you errors in levels below the HTTP protocol. Fiddler shows the errors inside the HTTP protocol. Charles is the winner in this case as it handles HTTPS in the best way. All you need to do is get a Charles Certificate and put it in the ‘Trusted Authorities’ list
- However, for problems relating to HTTP requests issued by the browse or server requests and responses, Fiddler is the best bet. For checking errors in the TCP/IP protocol used by your browser and the server (or in other layers below that), use Wireshark.
4. Local host traffic
- Fiddler and Charles do not capture localhost traffic by default. Wireshark has a commercial network sniffer called CommView (from TamoSoft) which allows you to capture packets on the localhost network adapter
5. AMF (Action Message Format)
- Charles, unlike Fiddler provides a functionality wherein an AMF decoder can help you to view the binary data in an easily-readable format. This is used for applications that transfer data using AMF.
6. Operating system
- For Windows, Fiddler is preferred. Charles works well with Linux and iOS environments.
7. User experience
- Charles has an excellent UI, with requests being displayed in a tree structure, making it easier to read. It displays images in image responses instead of binary data. The paid version of Charles has features such as Load/Save Session which can be useful when debugging multiple pages.
- Fiddler’s ability to add custom rules to modify requests and responses on the fly is quite useful for most users.
To summarize, the key pointers for you for using these tools,
- Use Charles when you have limited web pages to test since it allows you to quickly scan through HTTP requests
- Use Fiddler when you have a specific requirement which needs to be checked in the request. Fiddler, as discussed above is a free tool and hence can be used as per discretion
- Use Wireshark when you want to investigate errors in the TCP/IP protocol used by your browser and the server
We would like to end this mammoth series with a quote from Brian Kernighan,
“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”
- Soham Shah & Kartikay Sharma (Web Analytics)