JAVA如何监听ASP应用的HTTP信息
客户端IP
链接源(就是从哪个网站跳转过来的)
当前访问的是哪个页面
可以不改动这个WEB应用,从而实现这个需求吗? 个人想着是否可以通过JAVA去侦听WEB系统运行的端口,获取并解析HTTP的相关系统,不知是否可行. 有其它方式吗?
敬请板桥老师指点迷津
[该贴被icyiwh于2008-11-26 17:05修改过]
[该贴被icyiwh于2008-11-26 17:07修改过]
或者自己做个转发器Broker,将请求和响应都经过Java来处理。
但是这种开发的难度比较大,这个过程里涉及到了应用协议的解析、需要实现一个TCP协议网关。如果不是必要尽量避免这种底层的实现方式,从性能和潜在bug角度考虑都是比较难以控制的。
另外如果从这个角度去思考的话就不用再考虑Java参与实现了,性能是个问题。
|
这里面我只是涉及到了一个请求的解析, 而且解析的内容我只关心: 客户端IP, 访问的URL, 以及这个URL的Referer.
所以再次弱弱的问一句, 这个会影响性能吗? 会有多大程度的影响.
谢谢了先
[该贴被icyiwh于2008-11-27 14:02修改过]
单独考虑JVM到系统的数据映射过程数量增加了2倍,甚至还牵扯到了操作系统的网络驱动层,而这个过程应该是比较缓慢的。在系统运作的过程中IO是一个比较耗时的过程。
另外你需要进行协议的解析,这种计算过程也不是Java的强项。最好用C++甚至用C实现,而且改为使用拦截器的方式,有一个使用C实现的很著名网络数据拦截器(名字我忘记了),很可能你能够直接使用他。他的工作方式是直接将你监听的端口收到的数据从网卡的驱动层拷贝出来一个副本进行操作,不会影响到原先的应用过程,这样你也不需要实现网关了。
我估计这样的实现方式下,你的系统响应性能的上限可能会降低1/5甚至更多。你可以实现一个很简单的原型测试一下。
另外,其实问题的关键是你到底需要什么样的性能上限,先研究一下这个业务指标得到结果之后再来考虑实现的方式。