正向代理与反向代理详解
代理?我知道啊,不就是vue项目里面config文件配置的proxy嘛,我向后端接口请求数据的时候就配置它,反正能解决跨域这个问题......
今天我们来讲讲代理这些事情,虽然我们知道,但是我们可能就没有好好了解过它,对他的作用也是冰山一角。
正向代理:
概念:
正向代理是一个位于客户端和目标服务器之间的代理服务器,是为客户端服务的,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转发请求,将获得的内容返回给客户端。
特点:
(1)正向代理需要主动设置代理服务器 ip 或者域名进行访问,由设置的服务器 ip 或者域名去访问内容并返回
(2)正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见。
用途:
(1)突破访问显示:通过代理服务器,可以突破自身 ip 访问限制,访问国外网站等
(2)提高访问速度:代理服务器都设置较大的硬盘缓冲区,会将部分请求的响应保存到缓冲区,用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。
(3)隐藏客户端真实 ip:上网者可以通过正向代理的方法隐藏自己的 ip,免受攻击
反向代理:
概念:
反向代理是指以代理服务器来接收客户端的请求,后将请求转发给内部网络上的服务器,从服务器上得到的结果返回给客户端。
特点:
反向代理是代理服务器,为服务器收发请求,使真实服务器对客户端不可见
用途:
(1)隐藏服务器真实 ip:使用反向代理,可以对客户端隐藏服务器的 ip 地址
(2)负载均衡:根据所有真实服务器的负载情况,将客户端请求分发到不同的真实服务器上
(3)提高访问速度:可以对静态内容及短时间内有大量访问请求的动态内容提供缓存服务,提高访问速度
(4)提供安全保障:可以作为应用层防火墙,为网站提供对基于 web 的攻击行为(例如 DoS/DDoS)的防护,更容易排查恶意软件等。还可以为后端服务器统一提供加密和 SSL 加速(如 SSL 终端代理),提供 HTTP 访问认证等。
异同:
(1)最核心的不同在于代理的对象不同。正向代理是客户端的代理,服务器不知道真正的客户端是谁;反向代理是服务器的代理,客户端不知道真正的服务器是谁
(2)正向代理一般是客户端架设的;反向代理一般是服务器架设的
(3)正向代理主要是用来解决访问限制问题;反向代理则是提供负载均衡、安全防护等作用。二者都能提高访问速度