一读小说 » 都市言情 » 蓝星文娱:从微末崛起的娱乐大亨 » 第二章:代理?Java中的代理?正反代理?

第二章:代理?Java中的代理?正反代理?

    直给,上干货,硬核代理解析,请拿走!

    【代理】

    首先我们要知道,代理是什么意思呢?

    代理是一个多义词,具体含义取决于上下文。以下是代理的三种含义总结:

    一、在法律领域:

    代理是指代理人以被代理人(又称本人)的名义,在代理权限内与第三人(又称相对人)实施民事行为,其法律后果直接由被代理人承受的民事法律制度。

    代理包括委托代理和法定代理。

    委托代理是当事人聘请代理进行诉讼活动。

    法定代理是根据法律规定而产生的一种代理关系,例如在未成年人案件中,法律会指定特定的代理人代表未成年人进行诉讼活动。

    二、在计算机领域:

    代理,泛指中间传输web服务器,充当着用户和目标服务器之间的中介。

    代理(英语:Proxy)也称网络代理,是一种特殊的网络服务。

    它允许一个网络终端(一般为客户端),通过这个服务,与另一个网络终端(一般为服务器)进行非直接的连接。

    三、在其他领域:

    代理还可以指受委托,代表当事人,进行某种活动,如诉讼、纳税、签订合同等。

    【Java代理】

    而在Java中的代理,是指一种设计模式,即代理模式(ProxyPattern)。

    代理模式,是23种Java常用设计模式之一。

    一、定义:

    对其它对象提供一种代理,用以控制对这个对象的访问。

    二、作用:

    代理模式的主要作用是:

    为其它对象提供一种代理,以控制对这个对象的访问。

    在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

    三、内核:

    代理模式的思想内核,是为了提供额外的处理,或者不同的操作,而在实际对象与调用者之间,插入一个代理对象。

    这些额外的操作,通常需要与实际对象进行通信。

    在这种模式中,代理对象充当目标对象和客户端之间的中介,可以提供额外的操作或监控功能。

    四、静态代理与动态代理

    代理模式,可以分为静态代理和动态代理两种。

    在静态代理中,代理类和目标类在编译时就被确定,它们实现相同的接口。

    在动态代理中,代理类是在运行时通过反射机制生成的,这种实现方式更灵活,可以在不修改原有代码的基础上对方法进行功能增强。

    代理模式的应用场景,包括保护对象不被直接修改、增强功能或实现对象间的通信。

    【正反代理】

    一、正向代理

    正向代理,是一种位于客户端和目标服务器之间的网络代理。

    主要功能是代表客户端与目标服务器通信。

    当客户端想要访问某个网站时,它会先向正向代理服务器发送请求,并指定目标网站。

    然后,正向代理服务器会向目标网站发送相同的请求,并获取响应。

    最后,正向代理服务器将从目标网站获得的响应数据返回给客户端。

    这种代理方式可以隐藏客户端的真实身份和位置信息,使客户端能够访问通常无法直接访问的网站,例如被封锁的网站。

    此外,正向代理还可以提供缓存服务,加速网络请求,并增强网络访问的安全性。

    二、反向代理

    反向代理,是位于用户与目标服务器之间的一种代理服务。

    但它是代表目标服务器来处理请求的。

    具体来说:

    1、当用户发出请求时,这些请求首先会到达反向代理服务器,而不是直接发送到目标服务器。

    2、反向代理会根据一定的规则(如负载均衡策略)将用户的请求转发到后端的一组或多组服务器上进行处理。

    3、处理完成后,后端服务器会将结果返回给反向代理,再由反向代理将这些结果转发回给用户。

    三、正向代理和反向代理的区别

    1、用途不同

    正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。

    2、目的不同

    正向代理,实际代理的是客户端。

    而反向代理,实际代理的是目标服务器。

    3、代理架构不同

    正向代理是客户端架构,而反向代理是服务器架构。

    4、服务对象不同

    正向代理中,服务器不知道真正的用户是谁。

    反向代理中,用户不知道真正的服务器是谁。

    四、正向代理的典型VPN

    VPN(VirtualPrivateNetwork,虚拟专用网络)确实可以被视为一种典型的正向代理。

    正向代理,是指位于客户端和原始服务器(originserver)之间的服务器。

    它代表客户端向原始服务器发送请求并获取内容,然后将这些内容返回给客户端。

    VPN的工作原理正是如此。

    它为用户的网络请求提供代理服务,使得用户可以通过VPN安全地访问各种网站和服务。

    同时隐藏用户的真实IP地址,保护用户的隐私和网络安全。

    五、反向代理的代表Nginx

    实际上,Nginx既可以作为正向代理,也可以作为反向代理。

    以下是两种代理模式的具体介绍:

    1、正向代理

    在这种模式下,客户端(用户)明确知道他们想要访问的数据资源位于哪个服务器上,但客户端无法直接访问那个服务器。

    因此,客户端通过一个代理服务器来访问目标服务器。

    代理服务器充当了客户端和目标服务器之间的中间层,负责将客户端的请求转发给目标服务器,并将目标服务器的响应返回给客户端。

    2、反向代理

    在这种模式下,客户端通常不知道他们正在与反向代理服务器通信,而是认为他们直接与后端服务器通信。

    反向代理服务器接受客户端的请求,并将这些请求转发给后端服务器。

    后端服务器处理请求并返回响应,反向代理服务器再将响应返回给客户端。

    在这种模式下,客户端对代理是无感知的,因为客户端不需要进行任何额外的配置就可以访问。

    另外,Nginx不仅支持这两种代理模式,还可以用作负载均衡器、缓存服务器和电子邮件代理服务器等。

    ……

    以上,就是关于代理,Java中的代理,正反代理的定义、区别、典型代表的总结了。

    理解它,掌握它,会让你在今后的IT程序员开发工作中,一路砍瓜切菜,所向披靡的。

    So,你get到%多少了?

    (——本章玩——)

    (评论、关注、收藏,一键三连可好?)