博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于通信层的HTTP和SOAP消息跟踪
阅读量:6847 次
发布时间:2019-06-26

本文共 1200 字,大约阅读时间需要 4 分钟。

  hot3.png

在通信层,针对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

你可能感兴趣的文章
腾讯云联手创梦天地支持全球独立游戏开发者
查看>>
GitHub GraphQL API已正式可用
查看>>
spring cloud config server源码解析
查看>>
使用VS Code开发 调试.NET Core 应用程序
查看>>
jshint .jshintrc 的配置
查看>>
从一行代码里面学点 JavaScript
查看>>
mysql笔记 - SELECT 语句
查看>>
切图崽的自我修养-[HTTP] 部署WEB服务流程梳理
查看>>
感觉值得引进一下国外造轮子的套路
查看>>
【译】 WebP 支持:超出你想象
查看>>
cassandra分页
查看>>
13 款惊艳的 Node.js 框架——第2部分
查看>>
NodeJS中被忽略的内存
查看>>
Ruby String/Integer/Array 的一些不常用方法
查看>>
SVG——显示区域
查看>>
CSS魔法堂:重拾Border之——解构Border
查看>>
Ubuntu编译jdk7记录
查看>>
【10】把 Elasticsearch 当数据库使:Drill Down 下钻
查看>>
跟上大数据的步伐:快速搭建Spark集群
查看>>
React学习笔记3:用es2015(ES6)重写CommentBox
查看>>