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

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

一、代理

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

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

无代理时的请求与响应

有代理时的请求与响应

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

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

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

二、正向代理

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

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

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

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

三、反向代理

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

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

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

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

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

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

正向代理是代理客户端。

反向代理是代理服务器。

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

五、总结

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

完结!


相关文章
|
运维 Linux Shell
|
SQL 监控 druid
Druid未授权访问 漏洞复现
Druid未授权访问 漏洞复现
20945 1
|
存储 算法 NoSQL
还分不清 Cookie、Session、Token、JWT?看这一篇就够了
Cookie、Session、Token 和 JWT(JSON Web Token)都是用于在网络应用中进行身份验证和状态管理的机制。虽然它们有一些相似之处,但在实际应用中有着不同的作用和特点,接下来就让我们一起看看吧,本文转载至http://juejin.im/post/5e055d9ef265da33997a42cc
51097 16
|
Dubbo Java 应用服务中间件
Spring Cloud Alibaba 五大组件
Spring Cloud Netflix 部门组件的维护已经停止,这使得 Spring 社区意识到需要寻找新的解决方案来支持微服务架构。同时,由于阿里巴巴在微服务领域拥有丰富的经验和技术实践,因此 Spring 社区选择与阿里巴巴合作,通过整合阿里开源的组件和工具来开发 Spring Cloud Alibaba,以取代 Spring Cloud Netflix。
5313 2
|
消息中间件 存储 网络协议
从零开始掌握进程间通信:管道、信号、消息队列、共享内存大揭秘
本文详细介绍了进程间通信(IPC)的六种主要方式:管道、信号、消息队列、共享内存、信号量和套接字。每种方式都有其特点和适用场景,如管道适用于父子进程间的通信,消息队列能传递结构化数据,共享内存提供高速数据交换,信号量用于同步控制,套接字支持跨网络通信。通过对比和分析,帮助读者理解并选择合适的IPC机制,以提高系统性能和可靠性。
2110 14
|
存储 缓存 监控
缓存击穿、缓存穿透、缓存雪崩 3大问题,如何彻底解决?
【10月更文挑战第8天】在分布式系统中,缓存的使用极大地提高了系统的性能和响应速度。然而,缓存击穿、缓存穿透和缓存雪崩是三个常见的缓存相关问题,它们可能导致系统性能下降,甚至引发系统崩溃。本文将深入探讨这三个问题的成因、影响以及彻底的解决方案。
2646 1
|
缓存 监控 网络协议
微服务系列:服务注册与发现原理详解
本文详细解析了微服务架构中的服务注册与发现原理,大厂面试高频,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
微服务系列:服务注册与发现原理详解
|
负载均衡 网络协议 Linux
LVS,软负载均衡
LVS(Linux Virtual Server)是一项广泛应用的负载均衡技术,由章文嵩博士于1998年发起,自Linux 2.4.24版本起成为官方内核的一部分。LVS通过四层负载均衡技术实现高性能、高可用的服务器集群,支持多种调度算法和工作模式(如D-NAT、full-NAT、IP隧道、DR),适用于HTTP、数据库等应用。相比7层负载均衡器(如Nginx、HAProxy),LVS具有更高的并发处理能力和更低的资源消耗,适合大规模流量分发。本期文章详细介绍了LVS的工作原理、优势与不足,并对比了常见的负载均衡产品,帮助读者根据具体需求选择合适的解决方案。
2378 6
LVS,软负载均衡
如何在 Linux 系统中查看进程占用的内存?
如何在 Linux 系统中查看进程占用的内存?
3026 58
kali安装专业版burpsuite
kali安装专业版burpsuite
kali安装专业版burpsuite

热门文章

最新文章