Big Bug Ban

兴趣 践行 创新

用java做的HTTP/S代理服务器

 

最近用java写了一个代理服务器

HTTP的代理原理很简单

正常情况下 没有用代理 比如你要访问http://haku.hk/test.html

浏览器会向3haku.net主机发送如下的请求

  1. GET /test.html HTTP/1.0

如果使用了代理服务器  比如你使用了localhost 端口92

浏览器会向localhost的92端口发送如下报头

  1. GET http://3haku.net/test.html HTTP/1.0

这个时候代理服务器收到了请求  然后就吧http://haku.hk/test.html解析出host和path

然后再向3haku.net发送请求  然后吧收到的信息组装或者直接发送回客户机

这个过程是明文的 也就是说任何一个经过向代理服务器的网络 都可以看到你发送消息和回应

如果要使传输加密 可以用SSL

这个代码里面http代理测试过是可以用的  部分封装了HTTP协议

还封装了https的客户端连接,但是没测试,不晓得原因.

测试的话把main里面改成这个

  1. HTTPProxyServer ss=new SecureProxyServer(Integer.parseInt(argv[0]));

下一步打算做个socks5的代理服务器..

 

源码在此 [download id=”27″]

SSL参考  http://onjava.com/pub/a/onjava/2001/05/03/java_security.html

Written by princehaku

8月 20th, 2011 at 5:21 下午

Posted in java

Tagged with

with 2 comments

2 Responses to '用java做的HTTP/S代理服务器'

Subscribe to comments with RSS or TrackBack to '用java做的HTTP/S代理服务器'.

  1. 我用C也写了一个!客户端。感觉不错

    元谷

    13 9月 11 at 9:52 下午

  2. 可惜明文不能翻。。唉。

    princehaku

    16 9月 11 at 10:53 上午

Leave a Reply