Why TcpCatcher is useful to a developer?
Today, all applications are made of a client program communicating with a server. If the burden of the network plumbing is indeed taken in charge by modern frameworks, when things go wrong, it is very efficient to have a look at what is going on at network level. The developer will get quickly a deep understanding of the situation.
Because HTTP protocol is now being used everywhere (WebServices, RSS feeds, REST and AJAX architectures, etc..) TcpCatcher has put a special focus on HTTP support.
Why would I want to interfere in a client-server communication?
Sometimes when you encounter a buggy client-server communication you can save a lot of time by simply trying to change the packet at network level rather than trying to modify, recompile and run client or server program again and again.. Sometimes also you just do not have access to server source code or you want to confirm an hypothesis. Remove or add an HTTP header, detect and remove an extra invisible char inside a tcp packet, remove or add an xml node, etc.. all of that can be achieved very simply with TcpCatcher.
TcpCatcher can also be used in order to perform a security audit, allowing you to send handy forged requests to see how a server will react. See Workshop 8.
Since TcpCatcher is written in java, you will need a java Runtime to run it.
For those who know a bit of java, custom plugins written in java can be provided to TcpCatcher.
See workshops 3 and 4
Is TcpCatcher a transparent or non-transparent proxy server ?
By default, TcpCatcher is a none-transparent proxy server and the client needs to set up a proxy configuration (for Windows Internet Explorer and Chrome users, this set up is done automatically). See how to configure your browser.
You may also use TcpCatcher as a transparent proxy server (ie the client is not aware that there is proxy in the middle), but you will have to redirect traffic at lower network level towards TcpCatcher see Workshop 12
How can I avoid TcpCatcher running out of memory ?
TcpCatcher will keep in memory packets up to the limit you set up. In order to capture a lot of traffic without running out of memory, you can increase its maximum memory for example to 1 Giga Bytes starting it this way :
java -jar -Xmx1g TcpCatcher.jar
How can I monitor a communication between an existing java client program and a remote web server ?
Just add those extra JVM proxy options when launching your client program to redirect its outgoing traffic toward TcpCatcher -Dhttp.proxyHost=HostwhereTcpCatcherisRunning -Dhttp.proxyPort=TcpCatcherPort See workshop 6
I am already accessing the internet through a corporate proxy, how can I monitor this HTTP communication ?
Check the 'Target corporate web proxy' checkbox in the main settings panel or add those extra JVM proxy options when launching TcpCatcher in order to redirect outgoing traffic toward your corporate proxy (and keep defaults settings)
java -jar -Xmx1g -Dhttp.proxyHost=corporateproxyhost -Dhttp.proxyPort=corporateproxyport TcpCatcher.jar
For Windows users, this configuration is automatically detected and set up.
How could technically TcpCatcher be able to monitor SSL communications from remote clients towards remote servers since it is end to end encrypted ?
TcpCatcher is going to run its own SSL severs in the middle (using on the fly generated X509 certificates) so there is going to be two SSL handshakes and two SSL communications. In order, to make it fully transparent for the client application, you just have to add once TcpCatcher AC Root Certificate into the client truststore. See workshop 11. You are advised to remove this AC Root Certificate from your trustore once you have finished using TcpCatcher.
How to uninstall TcpCatcher ?
TcpCatcher does not install anything on your pc. In order to stop using TcpCatcher you can just remove the TcpCatcher jar file. Just make sure you have switched back to your usual proxy settings from your browser's network settings panel (typically you would set them back to 'No proxy'). For Windows users, TcpCatcher becomes automatically your default system proxy at startup, and restore you settings when closing. If you shutdown violently TcpCatcher (for instance killing the process), you may need to restore your proxy settings manually.
|Report a bug or
suggest a new feature