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

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

一、代理

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

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

无代理时的请求与响应

有代理时的请求与响应

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

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

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

二、正向代理

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

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

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

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

三、反向代理

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

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

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

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

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

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

正向代理是代理客户端。

反向代理是代理服务器。

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

五、总结

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

完结!


相关文章
|
缓存 负载均衡 前端开发
详解正向代理和反向代理的不同用途
详解正向代理和反向代理的不同用途
449 10
|
存储 算法 NoSQL
还分不清 Cookie、Session、Token、JWT?看这一篇就够了
Cookie、Session、Token 和 JWT(JSON Web Token)都是用于在网络应用中进行身份验证和状态管理的机制。虽然它们有一些相似之处,但在实际应用中有着不同的作用和特点,接下来就让我们一起看看吧,本文转载至http://juejin.im/post/5e055d9ef265da33997a42cc
47950 13
|
人工智能 监控 网络协议
【网络技术】心跳机制(入门讲解)
【网络技术】心跳机制(入门讲解)
|
SQL 监控 druid
Druid未授权访问 漏洞复现
Druid未授权访问 漏洞复现
17514 0
|
缓存 Java 容器
Spring AOP 源码解析
基于Spring Boot 的AOP启动的源码解析,分析在Spring Boot 容器启动时,AOP的过程
3308 2
Spring AOP 源码解析
|
缓存 前端开发 JavaScript
终极 Nginx 配置指南(全网最详细)
本文详细介绍了Nginx配置文件`nginx.conf`的基本结构及其优化方法。首先通过删除注释简化了原始配置,使其更易理解。接着,文章将`nginx.conf`分为全局块、events块和http块三部分进行详细解析,帮助读者更好地掌握其功能与配置。此外,还介绍了如何通过简单修改实现网站上线,并提供了Nginx的优化技巧,包括解决前端History模式下的404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离等。最后,附上了Nginx的基础命令,如安装、启动、重启和关闭等操作,方便读者实践应用。
5370 85
终极 Nginx 配置指南(全网最详细)
|
NoSQL 安全 Redis
Bugku S3 AWD排位赛-3(带你入门awd流程)
Bugku S3 AWD排位赛-3(带你入门awd流程)
1332 1
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
69012 5
详解HTTP四种请求:POST、GET、DELETE、PUT
|
应用服务中间件 nginx
一文带你彻底搞懂Nginx反向代理
一文带你彻底搞懂Nginx反向代理
4320 1
|
XML JSON 安全
对比HTTP与WebSocket
对比HTTP与WebSocket
1138 0