# 正向代理 和 反向代理
# 一、代理服务器
可以在代理服务器做缓存,用户不用直接访问服务器就可以拿到所要的数据;
可以用代理服务器“加速访问”,由于用户到服务器可能需要经过很多路由,导致速度较慢。
# 二、正向代理
1、定义
正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
2、场景
我是一个用户,我访问不了http://www.xxx.com/rproxy.html,但是我能访问一个代理服务器,这个代理服务器能访问我不能访问的网站。于是我先连上代理服务器,告诉他我需要访问http://www.xxx.com/rproxy.html,代理服务器就去拿资源并返回给我。
# 三、反向代理
1、定义
以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,客户端不用特别设置什么。
一个代理服务器能够代理外部网络上的主机访问内部网络时,这种代理服务的方式称为反向代理服务。CDN 就是利用反向代理技术。
2、场景
我是一个用户,我想访问http://www.xxx.com/rproxy.html,但xxx.com上并不存在rproxy.html,代理服务器会偷偷从另外一台服务器上拿到资源给用户,用户不知道真实的服务端是谁,反向代理隐藏了真实的服务端,反向代理服务器会帮我们把请求转发到真实的服务器那里去。
# 四、正向代理和反向代理的区别
1、本质
a,b,c 三个人,正向代理是 a 通过 b 向 c 借钱,a 知道 c 的存在,但 c 不知道他的钱借给了 a 。正向代理中,proxy 和 client 同属于一个 LAN,对 server 透明;
反向代理是 a 向 b 借钱,b 又向 c 借,a 不知道 c 的存在,c 也不知道 a 的存在。反向代理中,proxy 和 server 同属于一个 LAN,对 client 透明。
简单的说,从一个局域网出来到服务端为正向代理,从客户端要进入一个局域网为反向代理。
2、代理对象
正向代理代理的对象是客户端,为客户端做代理,代替客户端去访问服务器;
反向代理代理的对象是服务端,为服务器做代理,代替服务器接受客户端请求。
3、用途
A、正向代理 访问本无法访问的服务器,如 google 可以做缓存,加速访问服务器 对客户端访问授权,上网进行验证 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
B、反向代理 保护和隐藏原始资源服务器,阻止 web 攻击 负载均衡,优化网络负载