正向代理与反向代理
一.正向代理
一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。关于正向代理的概念如下: 正向代理(forward)是一个客户端和原始服务器(origin server)【服务器B/因特网】之间的服务器【代理服务器】。
为了从原始服务器取得内容,用户A向代理服务器发送一个请求并指定目标(原始服务器),然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
当代理服务器本地有缓存资源时,将会直接将缓存资源反馈给客户端。
从上述可知,正向代理的含义就是代理服务器代替客户端去访问目标服务器,这可能时由于客户端并不能直接访问目标服务器,而需要通过代理服务器来获取目标服务器的资源。又或者是从客户端到代理服务器中
需要经过多级路由(或者是这是一条低宽带链路),这会使访问的速度下降,因此使用代理服务器(高宽带链路)去访问目标服务器,以达到加速的效果。
除此之外,正向代理还有如下两个功能
1.客户端访问授权
假设客户端a和客户端b都设置了代理服务器去访问因特网,但是代理服务器设置了用户权限限制,只有客户端a能访问,那么客户端b的流量包将会直接被drop掉。
2.隐藏访问者的行踪
对于目标服务器来说,始终认为访问它的是代理服务器而不是客户端,因此可以隐藏客户端的行踪。
二.反向代理
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器(目标服务器),并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,
并将获得的内容返回给客户端。
其功能如下
1.保护和隐藏原始资源服务器
客户端从始至终都认为自己访问的是代理服务器,而不知道后端的真实情况,因此这个代理服务器也像是代替原始服务器(目标服务器)将资源反馈给客户端,因此也成为反向代理。
2.负载均衡
当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Z(x)去应答不同的用户,然后发送不同用户需要的资源。
CACHE
无论是正向代理还是反向代理,都有应用到缓存的技术,当代理服务器本地缓存有客户端想要的资源时,会将本地的资源直接反馈给客户端,而不会作出下一步的请求转发。