基于通信层的HTTP和SOAP消息跟踪

在通信层,针对SOAP和HTTP消息的跟踪有多种方法可选。

tcpmon程序是一个可以自由下载和免费使用的可执行jar文件。这个程序带有用户界面,因此很容易上手。tcpmon只需要3个设置:服务名称,默认是“localhost“;服务端口,比如前面例子TimeServer在发布服务时使用的9876端口;还有一个本地监听端口,默认是8080,tcpmon用来监听HTTP请求的端口。启动tcpmon后,将前面例子中TimeClient需要发送的服务请求端口由9876更改为8080。tcpmon拦截客户端和服务器之间的HTTP通信内容并将其显示在用户界面中。如图:

124036_A9bV_168814.jpg

124037_FCfN_168814.jpg

124037_nVxL_168814.jpg

其实还有许多开源的和商业产品可用来进行对SOAP通信的跟踪。在这些产品或工具中,有几个值得我们了解,其中有SOAPscope、NetSniffer和Wireshark。tcpdump普遍应用在Unix类型的操作系统中,Linux和OS X操作系统中往往也会有这个程序,在windows操作系统中常用的工具是WinDump。除了免费之外,tcpdump一个明显的好处就是对于客户端和web服务来说,不需要修改任何代码即可以完成对SOAP和HTTP通信的跟踪。tcpdump工具将消息输出到标准输出设备。与之伴随出现的tcptrace工具可以用来对输出的消息进行分析。下面将简要地介绍tcpdump的强大功能和灵活性。

在一些Unix类型的操作系统中, tcpdump程序必须使用超级用户权限,才能执行。tcpdump可设置不同参数用来完成不同的跟踪需要。下面是一个简单的例子:

% tcpdump -i lo -A -s 1024 -l 'dst host localhost and port 9876' | tee dump.log

实际上tcpdump可以拦截通过它出去的任何网络接口的通信包。通过参数 -D运行tcpdump,会显示其可以支持的网络接口列表,-D命令类似于Unix类型的操作系统中ipconfig -a命令。在上面这个例子中,标识/值对 -i lo告诉tcpdump从lo接口中拦截通信包,lo在Unix类型的操作系统中是localhost网络接口的缩写。标志 -A告诉tcpdump,截获的通信包以ASCII方式标示,由于web包通常都是文本类型,因此以这种方式显示容易阅读。-s 1024标识用来设置每次抓包长度,每一个拦截包所须要获取的字节数。标识 -l标识将包强制为每行输出,方便阅读,“|”标示将标准输出重定向到本地文件dump.log中。最后,看下面这个表示式:

'dst host localhost and port 9876'

它表示为一个过滤器,只针对地址localhost和端口9876进行通信包的拦截。

转载于:https://my.oschina.net/fhd/blog/208497

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值