正向代理与反向代理

这是网络面试和实际开发中非常常见的问题,下面我会用通俗语言 + 对比 + 图示 + 示例来说明:


🧭 一、什么是正向代理(Forward Proxy)

客户端找不到服务器,就找代理帮忙访问,这叫正向代理。

✅ 定义:

正向代理是客户端的代理,客户端通过代理服务器访问目标服务器,服务器并不知道真正的客户端是谁

✅ 应用场景:

🧠 图示:

[客户端] → [正向代理服务器] → [目标服务器]
            ↑
     知道客户端是谁

🎯 举例:


🛡️ 二、什么是反向代理(Reverse Proxy)

服务器不直接对外暴露,而是由代理统一对外服务,这叫反向代理。

✅ 定义:

反向代理是服务器端的代理,客户端访问代理服务器,由代理服务器决定将请求转发到哪个后端服务器。客户端不感知后端结构。

✅ 应用场景:

🧠 图示:

[客户端] → [反向代理服务器] → [多个真实后端服务器]
                             ↑
                    客户端不知道具体是哪个

🎯 举例:


✅ 正向 vs 反向 对比总结

特性 正向代理 反向代理
代理对象 客户端 服务器
客户端是否知道目标服务器 ✅ 是 ✅ 是
服务器是否知道客户端 ❌ 否 ✅ 是
应用方向 客户端突破访问限制 服务器架构优化、安全加速
常见用途 翻墙、内网访问公网、爬虫 负载均衡、隐藏服务、CDN 加速

🎓 面试时建议这样回答:

正向代理是“用户找不到服务器”,通过代理访问目标;反向代理是“服务器不直接暴露”,代理接收请求并转发到后端。
正向代理隐藏的是客户端身份,反向代理隐藏的是服务器身份。