Skip to Content
Over the course of working on Web Application and Web Services development, developers tend to accumulate some pretty handy tools in their tool bags.  These tools can often dramatically improve productivity in development and troubleshooting process.  Now, in the spirit of holiday sharing, I’m going to open my HTTP tool bag to share with you some of the tools that I found pretty useful.   *HTTP Watch *    Often we wish that we can see the underlying HTTP request/response cycles between our local browser and our web application.  HTTP Watch   (http://www.simtec.ltd.uk/) is a browser plug-in that allows us to see just that.     After installing HTTP Watch, a new “HTTP Watch” toolbar button will show up in your Internet Explorer (the right-most button in the following screenshot).  Click on it, HTTP Watch will occupy the lower pane of your browser window.  You can click on the “Start” button to start recording the browser’s HTTP requests and the corresponding responses.  All the requests/responses are shown in the HTTP Watch pane, and you can examine all the details by selecting a request and then clicking on the appropriate tab, such as +Stream +.  This screen shot shows HTTP Watch in action.  image        Sometimes, we may be interested in observing HTTP traffic between a certain HTTP client (not necessarily our local browser) and a certain HTTP server.  We can deploy a man-in-the-middle (MITM) HTTP interceptor.  We make the HTTP client to send all its requests to the MITM, and the MITM will then forward the requests to the designated server, allowing us to view the traffic at the same time.  The following diagram illustrates the MITM concept.image   There are many MITM interceptors around.  An often used one is the open source *Apache Axis TcpMonitor *.  After downloading Axis 1.1 (the current release version) from the Axis web site (http://ws.apache.org/axis/)*  *and unpack the files to a directory (Another popular MITM tool is the *Microsoft SOAP Trace * tool, available as part of the {code:html}Microsoft SOAP Toolkit 3.0 {code}.     After download and install the MS SOAP Toolkit, you can start the SOAP Trace Tool executable +MsSoapT3.exe + at the following directory:    +\Program Files\MSSOAP\Binaries+    To start a trace, select menu +File -> New -> Formatted Trace +.  Again, you need to specify the +Listener port #, + and forward +Destination host + and +Destination port +.  Afterwards, you can observe the HTTP traffics:  image  You can see that the SOAP messages are neatly formatted.  The MS SOAPTrace tool is very useful for tracing SOAP messages.  But it’s not as useful as Axis TCPMonitor when it comes to trace other non-SOAP HTTP traffic or to view the HTTP header.    To use these MITM tool, you need to redirect the client to send request to the MITM.  If you don’t want to do that or are not able to do that, you may consider to use a passive (and often more powerful) network sniffer, such as Microsoft’s Network Monitor or the Ethereal   (http://www.ethereal.com/), which is released under GPL.         Besides monitoring HTTP traffic, at times you may want to use an interactive tool to manually construct and send HTTP requests and see the responses.  The *Microsoft Wfetch * is one such tool.  You can find more information about where to download it and how to use it in {code:html}this {code} Microsoft KB article.  The following is a screenshot of the tool in action.    image
To report this post you need to login first.

6 Comments

You must be Logged on to comment or reply to a post.

  1. Dagfinn Parnas
    At the moment I am using ethereal for debugging complex user problems. It is very powerful once you learn how to use it (and it applies to all network traffic), but it’s not always very practical to install it on the users computer and I don’t want it on the servers.

    I’ll give the MITM tools you suggest a try next time.

    (0) 

Leave a Reply