【代理】10分钟掌握正向代理和反向代理的本质区别

简介: 【代理】10分钟掌握正向代理和反向代理的本质区别

一、代理

在了解正向代理和反向代理之前,我们首先要知道什么是代理,只有知道了什么是代理,才会很容易理解什么是正向代理和反向代理。

下面两张图告诉你什么是代理:

无代理时的请求与响应

有代理时的请求与响应

代理(Proxy)本来的意思并不是“转发”消息,而是先把消息收下来,然后“伪装”成原始客户端向Web服务器发出访问请求【引自《网络是怎么连接的》第五章节】。

代理服务器的英文全称是 Proxy Server,其功能就是代理网络用户去获取网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他 Internet 站点取得网络信息时,必须发出请求信号来得到响应,然后服务器再把信息以字节的方式传送回来,由浏览器解析即可获得数据。代理服务器就是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接发送请求到Web服务器,而是先向代理服务器发出请求,由代理服务器转发(或者重定向)到Web服务器来获取所需信息,获得信息之后再由代理服务器返回到你的浏览器。

为什么刚刚说的是代理,而这里却在说代理服务器,原因如下:其实正向代理并不是一开始就叫这个名字的,最早说的“代理”指的就是我们现在说的正向代理,或者也叫“代理服务器”。这是因为最早只有这么一种代理,后来出现了各种其他方式的代理,为了相互区别才起了“xxx代理”这样的名字。此外,由于代理种类变多了,叫“xx代理服务器”实在太长,一般都会省略“服务器”这3个字【引自《网络是怎么连接的》第五章节】。

二、正向代理

我们通常所说的代理,都是指的正向代理。

正向代理时,由客户端发送对某一个目标服务器的请求,代理服务器在中间将请求转发给该目标服务器,目标服务器将结果返回给代理服务器,代理服务器再将结果返回给客户端。

使用正向代理时,客户端是需要配置代理服务的地址、端口、账号密码(如有)等才可使用的。比如翻墙,任何可以连接到该代理服务器的软件,就可以通过代理访问任何的其他服务器,然后把数据返回给客户端,这里代理服务器只对客户端负责。

我们可以通过上图看到,客户端用户并没有直接与服务器相连。正向代理隐藏了真实的客户端地址。可以很好地保护客户端的安全性。

三、反向代理

服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知代理服务器的IP地址,而不知道在代理服务器后面的服务器集群的存在。

反向代理整个流程:由客户端发起对代理服务器的请求,代理服务器在中间将请求转发给某一个服务器,服务器将结果返回给代理服务器,代理服务器再将结果返回给客户端。

反向代理为什么叫反向代理

从我们用户的角度来看:代理我们发出请求的客户端被称为正向代理。而代理我们访问的服务器,则被称为反向代理。

四、正向代理和反应代理的区别

最核心的不同在于代理的对象不同

正向代理是代理客户端。

反向代理是代理服务器。

而根据这核心的区别,可以知道:代理哪端便可以隐藏哪端(也就是说:正向代理隐藏真实客户端,反向代理隐藏真实服务端)。

五、总结

正向代理为客户端服务。反向代理为服务器端服务。

完结!


相关文章
|
6月前
反向代理和正向代理的区别
反向代理和正向代理的区别
|
6月前
|
缓存 负载均衡 前端开发
详解正向代理和反向代理的不同用途
详解正向代理和反向代理的不同用途
199 10
|
6月前
|
缓存 负载均衡 JavaScript
服务器反向代理的作用与实现
服务器反向代理的作用与实现
137 8
|
6月前
|
缓存 负载均衡 网络安全
正向代理和反向代理的区别
正向代理和反向代理的区别
|
缓存 负载均衡 安全
谈一谈正向代理和反向代理?
提供代理服务的电脑系统或其它类型的网络终端,代替网络用户去获取网络信息。
|
安全 网络协议 Ubuntu
「技术架构」设置Squid转发代理或者正向代理
「技术架构」设置Squid转发代理或者正向代理
|
缓存 负载均衡 算法
正向代理和反向代理的区别是什么?底层原理是什么?
正向代理和反向代理的区别是什么?底层原理是什么?
233 0
|
测试技术 应用服务中间件 nginx
软件测试|正向代理和反向代理的区别
软件测试面试题,正向代理和反向代理的区别
137 0
软件测试|正向代理和反向代理的区别
|
缓存 负载均衡 安全
架构01-什么是反向代理,什么又是正向代理?
架构01-什么是反向代理,什么又是正向代理?
170 0
架构01-什么是反向代理,什么又是正向代理?