直给,上干货,硬核代理解析,请拿走!
【代理】
首先我们要知道,代理是什么意思呢?
代理是一个多义词,具体含义取决于上下文。以下是代理的三种含义总结:
一、在法律领域:
代理是指代理人以被代理人(又称本人)的名义,在代理权限内与第三人(又称相对人)实施民事行为,其法律后果直接由被代理人承受的民事法律制度。
代理包括委托代理和法定代理。
委托代理是当事人聘请代理进行诉讼活动。
法定代理是根据法律规定而产生的一种代理关系,例如在未成年人案件中,法律会指定特定的代理人代表未成年人进行诉讼活动。
二、在计算机领域:
代理,泛指中间传输web服务器,充当着用户和目标服务器之间的中介。
代理(英语:Proxy)也称网络代理,是一种特殊的网络服务。
它允许一个网络终端(一般为客户端),通过这个服务,与另一个网络终端(一般为服务器)进行非直接的连接。
三、在其他领域:
代理还可以指受委托,代表当事人,进行某种活动,如诉讼、纳税、签订合同等。
【Java代理】
而在Java中的代理,是指一种设计模式,即代理模式(Proxy Pattern)。
代理模式,是23种Java常用设计模式之一。
一、定义:
对其它对象提供一种代理,用以控制对这个对象的访问。
二、作用:
代理模式的主要作用是:
为其它对象提供一种代理,以控制对这个对象的访问。
在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
三、内核:
代理模式的思想内核,是为了提供额外的处理,或者不同的操作,而在实际对象与调用者之间,插入一个代理对象。
这些额外的操作,通常需要与实际对象进行通信。
在这种模式中,代理对象充当目标对象和客户端之间的中介,可以提供额外的操作或监控功能。
四、静态代理与动态代理
代理模式,可以分为静态代理和动态代理两种。
在静态代理中,代理类和目标类在编译时就被确定,它们实现相同的接口。
在动态代理中,代理类是在运行时通过反射机制生成的,这种实现方式更灵活,可以在不修改原有代码的基础上对方法进行功能增强。
代理模式的应用场景,包括保护对象不被直接修改、增强功能或实现对象间的通信。
【正反代理】
一、正向代理
正向代理,是一种位于客户端和目标服务器之间的网络代理。
主要功能是代表客户端与目标服务器通信。
当客户端想要访问某个网站时,它会先向正向代理服务器发送请求,并指定目标网站。
然后,正向代理服务器会向目标网站发送相同的请求,并获取响应。
最后,正向代理服务器将从目标网站获得的响应数据返回给客户端。
这种代理方式可以隐藏客户端的真实身份和位置信息,使客户端能够访问通常无法直接访问的网站,例如被封锁的网站。
此外,正向代理还可以提供缓存服务,加速网络请求,并增强网络访问的安全性。
二、反向代理