谈谈正向代理与反向代理

星期一, 12月 30, 2024 | 1分钟阅读 | 更新于 星期一, 12月 30, 2024

@
谈谈正向代理与反向代理

正向代理和反向代理是网络中常见的两种代理服务,尽管它们的名称相似,但其功能和用途完全不同。


正向代理(Forward Proxy)

定义: 正向代理是客户端代理,用于代表客户端向服务器发送请求, 着重点在于客户端代理

特点:

  • 客户端感知代理存在 :客户端必须知道正向代理的地址,并主动将请求发送给代理服务器。
  • 隐藏客户端信息 :目标服务器只会看到代理服务器的请求,而无法直接获取客户端的信息。
  • 常见用途:
    • 突破网络限制 :如访问被防火墙屏蔽的资源(翻墙)。
    • 匿名性 :隐藏客户端的真实 IP 地址。

工作流程:

  1. 客户端向正向代理服务器发送请求。
  2. 正向代理服务器转发请求至目标服务器。
  3. 目标服务器响应数据给正向代理服务器。
  4. 正向代理服务器将数据返回客户端。

反向代理(Reverse Proxy)

定义: 反向代理是服务器代理,用于代表服务器接受客户端的请求,并将这些请求转发到后端的真实服务器,着重点是服务端代理。

特点:

  • 隐藏服务器信息 :反向代理屏蔽了后端服务器的 IP 地址和拓扑结构。

  • 常见用途:

    • 负载均衡 :将请求分发到多个后端服务器,减轻单台服务器的压力。
    • 安全性增强 :隐藏后端服务器,防止直接攻击。
    • 缓存和加速 :存储静态资源或常用内容,减少后端服务器的压力。
    • 协议转换 :实现 HTTP/HTTPS 等协议的转换。

工作流程:

  1. 客户端向反向代理服务器发送请求。
  2. 反向代理服务器根据规则,将请求转发给后端服务器。
  3. 后端服务器处理请求并返回响应数据给反向代理服务器。
  4. 反向代理服务器将响应结果返回客户端。

正向代理与反向代理的区别

正向代理代理的是用户请求的请求,真实的服务器是不知道这个请求是谁发的。

反向代理代理的是服务器的响应,用户不知道真实的服务器在哪里。

一个服务用户,一个服务服务器,从不同的角度给的定义

CDN与反向代理的关系

从流程上讲,CDN算是一种反向代理,因为它代理、缓存了服务器源站的数据,充当了用户与后端服务器的代理角色。

但CDN又不仅仅是反向代理,可以将cdn看作反向代理的延伸,因为反向代理初期被用来解决服务器压力和响应速度的问题,大规模部署反向代理时,如果都部署在一起,那么带宽和距离仍然是瓶颈,而异地部署则要考虑负载均衡的问题,解决了这些问题也就基本部署成CDN了。

一言以蔽之:CDN是现在一种网络加速的解决方案,反向代理是将用户的请求转发给后端服务器,CDN用到了反向代理的技术,是不同的。

© 2016 - 2025 Jebben 开发日志&网络随笔

🌱 Powered by Hugo with theme Dream.

关于博主

自我介绍

大家好,我是 Jabin,一名拥有 8 年工作经验的前端工程师。我是一个自学成才的开发者,通过不断学习和实践,积累了丰富的 web 端开发经验以及在 B 端后台管理、监控和 C 端教育、媒体类项目方面的丰富经验。

关于我的技能

我精通多种前端技术,包括但不限于:

  • JavaScript 和 TypeScript:我熟练掌握 JavaScript 和 TypeScript,能够利用它们构建出色的前端应用程序。
  • CSS:我对 CSS 有深入的理解,能够编写出美观、响应式的样式。
  • 前端框架:我熟练使用 Angular、React、Vue 和 Next.js 等前端框架,能够根据项目需求灵活选择并应用合适的技术栈。
  • 前端工具:我熟悉 webpack、Vite 等常用的前端打包工具,以及框架配套的 CLI 工具,能够高效地进行项目开发和部署。
  • 后端技术:我了解服务端语言 Java 和 Node.js,并能够与后端开发人员紧密合作,实现完整的应用程序。
  • 数据库和操作系统:我熟悉 SQL 数据库和 Linux 操作系统的常见操作和命令,能够进行数据库管理和服务器配置。

我的项目经验

我曾主导多个从零到一的项目,参与过数百万 UV 项目的开发,具有丰富的项目开发与团队合作经验。

我对技术充满热情,喜欢钻研新技术和解决复杂的技术问题。我还积极参与开源社区,贡献自己的力量,与各地的开发者共同探索和分享技术前沿。

结语

我是一个对技术认真负责、可靠可靠的人,热爱挑战和创新。我希望通过我的个人网站,与更多志同道合的人分享我的经验和见解,共同推动前端技术的发展和进步。

欢迎来到我的个人网站,期待与您的交流和合作!