用java做的HTTP/S代理服务器
最近用java写了一个代理服务器
HTTP的代理原理很简单
正常情况下 没有用代理 比如你要访问http://haku.hk/test.html
浏览器会向3haku.net主机发送如下的请求
- GET /test.html HTTP/1.0
如果使用了代理服务器 比如你使用了localhost 端口92
浏览器会向localhost的92端口发送如下报头
- GET http://3haku.net/test.html HTTP/1.0
这个时候代理服务器收到了请求 然后就吧http://haku.hk/test.html解析出host和path
然后再向3haku.net发送请求 然后吧收到的信息组装或者直接发送回客户机
这个过程是明文的 也就是说任何一个经过向代理服务器的网络 都可以看到你发送消息和回应
如果要使传输加密 可以用SSL
这个代码里面http代理测试过是可以用的 部分封装了HTTP协议
还封装了https的客户端连接,但是没测试,不晓得原因.
测试的话把main里面改成这个
- 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
我用C也写了一个!客户端。感觉不错
元谷
13 9月 11 at 9:52 下午
可惜明文不能翻。。唉。
princehaku
16 9月 11 at 10:53 上午