代理

静态代理(装饰者模式)

  • 要求被装饰者和装饰者实现同一个接口或者继承同一个类
  • 装饰者中要有被装饰者的引用
  • 对需要加强的方法进行增强
  • 对不需要加强的方法调用原来的方法

动态代理

在程序运行的时候,动态的创建一个对象,用这个对象去操作方法方法 ,jdk的中Proxy ,前提:必须实现一个接口
Object Proxy.newProxyInstance(ClassLoader 被代理对象的类加载器,Class[] 被代理对象实现的所有接口,InvocationHandler 处理方法);
InvocationHandler:接口 只需要重写一个方法
Object invoke(Object 代理对象,Method 当前执行的方法,Object[] 当前方法执行的时候需要的参数)
返回值就是 当前方法执行之后的返回值

正向代理(Forward Proxy)

一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。正 向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,用户向代理服务器发送一个请求并指定目标,然后代 理服务器向服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
使用正向代理服务器作用主要有以下几点:

  • 访问本无法访问的服务器(翻墙)
  • 加速访问服务器(宽带速度)
  • Cache作用(命中)
  • 客户端访问授权(在防火墙不允许连接外网时,在代理服务器上设置权限,内网的部分主机可以访问外网)
  • 隐藏访问者的行踪

总结

正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内 容返回给客户端。客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。

反向代理(reverse proxy)

对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
使用反向代理服务器的作用如下:

  • 保护和隐藏原始资源服务器
  • 负载均衡

透明代理

透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。 透明代理实践的例子就是时下很多公司使用的行为管理软件。

  • 用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户A或B的报文,并作为实际的请求方,向服务器A或B发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户A或B,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值