Java如何实现代理服务器?

  代理服务器的作用,大家是有目共睹的,确实给我们带来了很大的方便,Java如何实现代理服务器?

  首先,这个需求可以简化为:

  1、代理服务主机将客户机与代理服务主机之间的请求截获,然后直接将信息转发给目标主机;

  2、代理服务主机将目标主机的回应直接转发给客户机。

  代理服务主机可以通过socket直接获取客户机发送到本机指定端口的数据报文,那么通过分析内容可以得到客户机想要发送给目标主机的信息,代理服务主机可以通过socket的方式再次重新请求,将原来请求中的内容转发给目标主机,之后将目标主机的回应转发给客户机。

  对于Java SE项目来说,有两者方式来实现:

  1、采用原生的Java socket 编程。(存在多线程问题...)

  2、采用第三方的网络应用框架,比如:mina、netty等。(开发简单,稳定可靠)

  对于Java WEB项目来说,也有两者方式来实现:

  1、采用上面的Java SE方案。

  2、HTTP代理,拦截客户端的请求,并采用Http协议发送GET/POST请求给目标服务器。