Fiddler is a request inspector, form tamperer and general debugging proxy for HTTP. Fiddler enables web developers to monitor HTTP requests to their web application, watch request and response headers, tamper with query strings and form values, collect statistics and even rebuild and send new requests. It has inbuilt HTTPS support using a middle-man approach, and can even decode encoded request bodies, as well as render images, and view HEX values and XML.
Fiddler is actually a tool provided by a Microsoft employee, although works seamlessly with any browser. It requires the .net framework, and so is most likely a Windows-only application, although it may be run on Mono. When Fiddler is running, IE requests are automatically routed through it, and it runs a local transparent proxy server on port 8888. Firefox and other browsers can then be configured to route their requests through Fiddler. (I use SwitchProxy for added simplicity.)
As each HTTP request comes through, Fiddler offers a wealth of options for analysing the request:
The inbuilt request builder enables you to use a past request as a template to send a new HTTP request manually. Fiddler can even autorespond to requests to the proxy, and expose the proxy to clients on the local network. The application also includes a number of other handy tools, including an authentication mechanism. Fiddler’s rules-based proxy system is even scriptable (C#), and a mini-editor with syntax highlighting and reference is available for constructing rule scripts.
Fiddler is an invaluable tool for analysing problems with a web application where HTTP may be an issue, as well as generally observing the movement of a client through the application. It overcomes HTTP’s statelessness with its session-based approach, and integrates well with other tools. It’s also a very convenient HTTP proxy. To get started, just head over to the project page.