• 正向代理和反向代理


    一、正向代理

      先上图

      

      A主机想要访问互联网里的某网站却访问不了,但B主机可以访问,这个时候就可以通过向B主机发送请求让B主机从互联网将获得的网站信息返回给A主机。这里的A主机就相当于上图的客户端,B主机就相当于正向代理服务器。从网站的角度来看,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

      客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。

      总结来说:正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

      正向代理的用途:

      (1)访问原来无法访问的资源,如google

      (2) 可以做缓存,加速访问资源

      (3)对客户端访问授权,上网进行认证

      (4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

    二、反向代理

      上图

      

      反向代理的存在,让客户端感知不到自己访问的到底是真实服务器还是代理服务器,因为客户端不需要任何配置就可以访问。反向代理服务器会接受所有来自internet的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

      反向代理的作用:

      (1)保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击。大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。

      (2)负载均衡,通过反向代理服务器来优化网站的负载。一些大型网站,通常都会有很多服务器,当有大量访问来时,使用负载均衡就很有必要。

      

    总结:

      正向代理中,proxy和client同属于一个LAN,对server透明;

      正向代理中,proxy和server同属于一个LAN,对client透明;

       实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了一下,所以把后出现的那种代理方式叫做反向代理。

       

  • 相关阅读:
    23种设计模式
    外部排序:选择置换、败者树
    java代理模式
    java中抽象类和接口的异同(原文作者:博客园 海子)
    java中的垃圾回收
    进程
    C标准库-数值字符串转换与内存分配函数
    文件操作
    字符串操作
    C指针(二)
  • 原文地址:https://www.cnblogs.com/value-code/p/11233248.html
Copyright © 2020-2023  润新知