正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,而后代理服务器向目标服务器转交请求并将得到的内容返回给客户端。后端
有时候,用户想要访问某国外网站,该网站没法在国内直接访问,可是咱们能够访问到一个代理服务器,这个代理服务器能够访问到这个国外网站。所以,用户对该国外网站的访问就须要经过代理服务器来转发请求,而且该代理服务器也会将请求的相应再返回给用户。这个上网的过程就是用到了正向代理。
缓存
这个过程其实和租房子很像。租房子时,通常状况下咱们很难联系到房东,由于有些房东为了图方便,可能会将本身的房屋信息和钥匙交给中介。而房客想要租房子的话只能经过中介才能联系到房东。而对于房东来讲,他可能根本不知道真正想租他房子的人是谁,他只知道是中介在联系他。安全
这里面一共有三个角色,租客(用户)、中介(代理服务器)和房东(国外网站,目标服务器)。引入中介(代理服务器)的缘由是用户没法联系上房东(用户没法访问国外网站)。服务器
因此,正向代理实际上是“代理服务器”代理了“客户端”,去和“目标服务器“进行交互。网络
经过正向代理服务器访问目标服务器,目标服务器是不知道真正的客户端是谁,甚至不知道访问本身的是一个代理(有时候中介也可直接冒充租客)。负载均衡
经过代理服务器,能够突破自身IP访问限制。访问国外网站等。网站
即,租客能够经过中介,来解决没法联系上房东的问题。加密
一般代理服务器都设置一个较大的硬盘缓冲区,会将部分请求的响应保存到缓冲区中,当其余用户再访问相同信息时,则直接由缓冲区中取出信息,传给用户,以提升访问速度。代理
即,中介手里留存了不少房源信息和钥匙,能够直接带租客去看房。ip
上网者也能够经过这种方式隐藏本身的IP,免受攻击。
即,房东并不知道租客的真实身份。PS:可是中介知道了,可能骚扰更多。
反向代理(reverse proxy):是指以代理服务器来接受internet上的链接请求,而后将请求转发给内部网络上的服务器,并将从服务器上获得的结果返回给internet上请求链接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
咱们在租房子的过程当中,除了有些房源须要经过中介之外,还有一些是能够直接经过房东来租的。用户直接找到房东租房的这种状况就是咱们不使用代理直接访问国内的网站的状况。
还有一种状况,就是咱们觉得咱们接触的是房东,其实有时候也有可能并不是房主本人,有多是他的亲戚、朋友,甚至是二房东。可是咱们并不知道和咱们沟通的并非真正的房东。这种帮助真正的房主租客的二房东其实就是反向代理服务器。这个过程就是反向代理。
对于经常使用的场景,就是咱们在Web开发中用到的负载均衡服务器(二房东),客户端(租客)发送请求到负载均衡服务器(二房东)上,负载均衡服务器(二房东)再把请求转发给一台真正的服务器(房东)来执行,再把执行结果返回给客户端(租客)。
因此,反向代理,其实就是“代理服务器”代理了“目标服务器”,去和“客户端”进行交互。
经过反向代理服务器访问服务器时。客户端是不知道真正的目标服务器是谁的,甚至不知道本身访问的是一个代理。
使用反向代理,能够对客户隐藏服务器的IP地址。
即,租客并不知道房东的真实身份。
反向代理服务器能够作负载均衡,根据全部真实服务器的负载状况,将客户端请求分发到不一样的真实服务器上。
即,二房东发现房主本人很忙,因而找到房主的妻子帮忙处理租房适宜。
反向代理服务器能够对于静态内容及短期内有大量访问请求的动态内容提供缓存服务器,提升访问速度。
即,二房东一样有房屋信息和钥匙。
反向代理服务器能够做为应用层防火墙,为位置提供对基于Web的攻击行为(例如Dos/DDoS)的防御,更容易排查恶意软件等。还能够为后端服务器统一提供加密和SSL加速(如SSL终端代理),提供HTTP访问认证等。
即,二房东能够有效的保护房东的安全。
虽然正向代理服务器和反向代理服务器所处的位置都是位于客户端和真实服务器之间,所作的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,可是两者之间仍是有必定的差别的。