![](https://mamchenkov.net/wordpress/wp-content/uploads/2017/04/charles-macosx-500x387.png)
Charles is a web debugging proxy application for Windows, Mac OS, and Linux. Â Here’s a quick description from the project’s website:
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).
And here are some key features:
- SSL Proxying – view SSL requests and responses in plain text
- Bandwidth Throttling to simulate slower Internet connections including latency
- AJAX debugging – view XML and JSON requests and responses as a tree or as text
- AMF – view the contents of Flash Remoting / Flex Remoting messages as a tree
- Repeat requests to test back-end changes
- Edit requests to test different inputs
- Breakpoints to intercept and edit requests or responses
- Validate recorded HTML, CSS and RSS/atom responses using the W3C validator
Pretty much every browser these days comes with developer tools (like Google Chrome, for example).
![](https://mamchenkov.net/wordpress/wp-content/uploads/2017/04/network-panel-500x209.png)
But these are mostly useful for requests made by the browser itself. Â Often, like depicted in “PHP and cURL: How WordPress makes HTTP requests” blog post from which I learned about Charles, one needs to examine requests made by the application itself – like WordPress in this particular case.
The developer tools of the browser won’t be very useful, but a proxy application like Charles would. Â Setting up a proxy will send all requests through it, allowing for easy inspection and debugging.