基于Socket的代理服务器的问题
一个代理服务器,要实现对web内容的过滤,处理
对于代理大家一定比较熟悉,就是一个SocketServer,SocketServer在某个端口
启动,当有人请求http://proxyhost:port/index.htm时SocketServer响应请求然后转发给预定的web服务器http://webserver:port/index.htm,并将web服务器返回的结果处理后返回给客户端。
比如代理的地址是www.abc.com:8080,让代理处理http://www.def.com/index.htm,那就在地址栏输入http://www.abc.com:8080/index.htm,这样输出的页面是对原页面处理后的页面
1.能用Socket实现吗?
2.如果我只想处理文本内容,对于图片这样的二进制数据想跳过该怎么办?
3.Socket.getInputStream(),Socket.getOutputStream(),怎么样读写最合理
有做过这方面程序的朋友多指教!
问题点数:0、回复次数:1Top
1 楼SwordsmanF(香香的味道)回复于 2003-11-02 19:43:28 得分 0
1、可以
2、去掉代理得到的www.def.com上的任何页面中的<img...>和flash等标签。
3、代理完整的读取原数据,并写入代理服务器的指定目录(缓冲)。写出数据时将不要显示的部分去掉。下一次再有访问请求时,先比较缓存目录里的文件的生成时间和服务器上的页表生成时间。如果www.def.com的更新则再读取之并覆盖缓冲目录里的文件,如果一致,则直接从缓冲目录里读出来写给你的客户。减少网络流量。。。Top




