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

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

一、代理

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

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

无代理时的请求与响应

有代理时的请求与响应

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

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

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

二、正向代理

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

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

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

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

三、反向代理

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

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

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

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

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

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

正向代理是代理客户端。

反向代理是代理服务器。

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

五、总结

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

完结!


相关文章
|
Ubuntu
避坑指南之Samba4在Ubuntu20.04 编译安装指南
避坑指南之Samba4在Ubuntu20.04 编译安装指南
1393 0
避坑指南之Samba4在Ubuntu20.04 编译安装指南
|
2月前
|
人工智能 安全 Unix
Claude Code 必知的 14 个高效工作流,让你的开发效率提升 300%
掌握 Claude Code 的 14 个高效工作流,覆盖代码理解、开发调试、安全重构、计划模式、自动化测试、PR 创建、文档生成等全流程。从陌生项目快速上手的探索技巧,到子代理委派、思考模式、图像辅助开发等进阶玩法,一文带你解锁 Claude Code 的真正实力,让 AI 从聊天工具变成真正的开发伙伴。
811 2
|
5月前
|
机器学习/深度学习 传感器 监控
基于 YOLO26 的火灾火焰智能检测系统(中英文双版) | 附完整源码与效果演示
随着人工智能技术的快速发展,计算机视觉在安防监控、工业安全、森林防火等领域的应用日益广泛。火焰检测作为计算机视觉的重要研究方向之一,对于预防火灾、保障人民生命财产安全具有重要意义。传统的火焰检测方法主要依赖烟雾传感器和温度传感器,存在响应延迟、易受环境干扰等局限性。基于深度学习的视觉火焰检测技术能够实时分析视频流,实现早期火灾预警,具有检测速度快、准确率高的优势。本文介绍一种基于YOLO26目标检测算法的火焰检测系统,该系统能够在复杂环境下快速准确地识别火焰目标,为智能安防和火灾预警提供可靠的技术支持。
|
4月前
|
前端开发 NoSQL Java
宝塔面板部署Java项目全指南:JDK+Nginx+MySQL+Redis一站式配置
本文详解宝塔面板部署Java全栈项目全流程:涵盖宝塔安装、Nginx/MySQL/Redis配置、JDK环境搭建(支持1.8/11/17)、Spring Boot Jar包部署、前端静态资源托管及Nginx反向代理配置,附数据库建库导入与Redis安全设置,保姆级实操指南。(239字)
kali安装专业版burpsuite
kali安装专业版burpsuite
kali安装专业版burpsuite
|
人工智能 安全 数据库
AiCodeAudit-基于Ai大模型的自动代码审计工具
本文介绍了基于OpenAI大模型的自动化代码安全审计工具AiCodeAudit,通过图结构构建项目依赖关系,提高代码审计准确性。文章涵盖概要、整体架构流程、技术名词解释及效果演示,详细说明了工具的工作原理和使用方法。未来,AI大模型有望成为代码审计的重要工具,助力软件安全。项目地址:[GitHub](https://github.com/xy200303/AiCodeAudit)。
6245 9
|
Dubbo 网络协议 Java
RPC框架:一文带你搞懂RPC
这篇文章全面介绍了RPC(远程过程调用)的概念、原理和应用场景,解释了RPC如何工作以及为什么在分布式系统中广泛使用,并探讨了几种常用的RPC框架如Thrift、gRPC、Dubbo和Spring Cloud,同时详细阐述了RPC调用流程和实现透明化远程服务调用的关键技术,包括动态代理和消息的编码解码过程。
RPC框架:一文带你搞懂RPC
|
缓存 负载均衡 安全
正向代理和反向代理
本文详细介绍了代理和反向代理的概念及应用场景。代理作为一种中间人服务,可细分为正向代理与反向代理。前者位于客户端与网络间,有助于匿名浏览、访问控制、缓存加速及增强安全性;后者则位于网络与服务器间,主要用于负载均衡、缓存、安全性提升、SSL终止及内容过滤等。两者各有侧重,可根据具体需求选择使用。例如,Squid 是常用的正向代理框架,而 Nginx 则常用于反向代理。了解并合理运用两者,能有效提升网络性能与安全性。
1706 4
|
安全 网络安全 数据库
扫描神器:Nessus 保姆级教程(附步骤)
扫描神器:Nessus 保姆级教程(附破解步骤)
|
安全 网络协议 网络安全
详解IP安全:IPSec协议簇 | AH协议 | ESP协议 | IKE协议
详解IP安全:IPSec协议簇 | AH协议 | ESP协议 | IKE协议
3480 3

热门文章

最新文章