几种代理方式的简单总结

常见代理方式有正向代理、反向代理和透明代理。他们具体如下:

正向代理 forward proxy

C要访问目标机器T,但是无法直接访问,那么通过告诉P,由P去访问T,然后将访问T的结果告诉给C

其中C是客户端,T是目标访问机器,P是代理

关键点

C在请求P时明确告诉其要访问T,P只负责对C要求的T进行访问

特点

  • T不对C开放,但对P开放,那么就可以使用 forward proxy
  • C访问T的路由过于复杂,而P访问T的路由相对简单,那么使用P可以达到提速的目的
  • 多个C对T的访问时,相同的请求就可以通过P被缓存(P有可能又变成新的访问瓶颈),减轻T的压力,增加C的访问速度。
  • 可以在P上对C的访问做权限控制。指定那些C可以访问目标T
  • 需要向T隐藏实际的访问者C的行踪时,可以通过访问P来实现。当P完全(部分)被C控制了,那P就成所谓的的“肉鸡”了;

反向代理 reverse proxy

C访问P服务器,但并不告诉P自己要访问的具体目标服务T。而是有P来判断C到底是要访问那个T,然后直接转发请求给T。因此对于C来说P就相当与自己要访问的目标机器

关键点

C知道代理服务P,但无需告诉P目标T是谁,而是由P决定用那个T

特点

  • 保护和隐藏了目标资源T
  • 同正向代理,可以cached
  • 可以实现负载均衡。可以架设多个反向代理服务器P(集群),让不同的代理服务器去应答不同的用户
  • 当反向代理服务器开启cached功能时,针对静态资源(图片、脚本、样式等),如果代理服务器和用户来自同一个网络时,那么用户访问代理服务器就能获得高质量的速度(CDN原理,CDN核心的技术是智能DNS)

透明代理

C根本不需要知道P的存在。请求发到P时,P根据实际情况对C的请求进行包装重组,但不会修改IP,然后将修改后的请求报文发给T,获取响应后,在根据自身策略讲可以返回的报文返回给C

关键点

C不需要知道P的存在; P会对C的请求和T的相应进行包装

参考链接