前言
多长时间不写博客了?反正一双手是数不过来了,今天就顺手写点小知识点。主要想说的是正向代理和反向代理。
正文
代理
首先先说概念:
代理的概念是什么呢?
百度百科提供的说明:
代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。
简单说就是“中间商”如下图(本文以Nginx为例进行说明):
图中的Nginx服务器可以看成是代理服务器,通俗的讲就是客户端要想访问原始服务器(目标服务器)必须通过代理服务器去访问。客户端和服务器之间是互相不认识的。大家注意是互相两个字,列举两种情况:
1、客户端认识服务器,但是服务器不认识客户端。
2、客户端不认识服务器,但是服务器认识客户端。
所以两个互相不认识的人(这里说的是客户端和原始服务器)可以通过中间的代理来互相交流。这就是代理的主要作用。
正向代理
百度百科:
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
通过上边对代理的叙述,正向代理可以看做是两种互相不认识情况的第一种“客户端认识服务器,但是服务器不认识客户端。”
红框中的客户端和代理服务器是认识的,也就是客户端非常清楚是向代理服务器发送的请求,而非是向原始服务器发送的请求。
反向代理
百度百科:
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
有正向代理也有反向代理,反向代理正好符合两种互相不认识情况的第二种“客户端认识服务器,但是服务器不认识客户端。”
概念性的东西就这些了还有一些个人的理解
总结
个人理解:
正向代理是客户端代理,主要是代理客户端,
反向代理是服务端代理,主要是代理服务端。
共同点都是“代理”的 客户端和服务端都是互相不认识的,这才有了代理的必要性。
从始至终的角度都是站在客户端的角度来说的
正向代理和反向代理之间关系的不通说法:
第一种:
正向代理客户端知道服务器是代理,
反向代理客户端不知道服务器是代理。
第二种:
正向代理是对原始服务器隐藏客户端信息,
反向代理是对客户端隐藏原始服务器信息
第三种:
正向代理是原始服务器不知道具体的客户端,
反向代理是客户端不知道具体的原始服务器