Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

什么是正向代理,反向代理【热度: 1,294】 #413

Open
yanlele opened this issue Jun 4, 2023 · 0 comments
Open

什么是正向代理,反向代理【热度: 1,294】 #413

yanlele opened this issue Jun 4, 2023 · 0 comments
Labels
小米 公司标签 网络 web 网络相关
Milestone

Comments

@yanlele
Copy link
Member

yanlele commented Jun 4, 2023

关键词:正向代理反向代理概念

概念

正向代理(Forward Proxy)和反向代理(Reverse Proxy)都是常见的代理服务器架构,用于在客户端与目标服务器之间进行中转和处理请求的工作。它们的区别在于代理的位置和作用方式不同。

  1. 正向代理:

    • 代理位于客户端与目标服务器之间,代理服务器充当客户端的代表。
    • 客户端发起请求时,请求首先发送给正向代理服务器,然后由代理服务器转发请求给目标服务器,目标服务器将响应返回给代理服务器,最后代理服务器再将响应返回给客户端。
    • 客户端并不直接与目标服务器通信,而是通过正向代理服务器进行中转。
    • 正向代理常用于客户端访问互联网,提供一些特定的服务,如匿名访问、访问控制、缓存、安全性等。
  2. 反向代理:

    • 代理位于目标服务器与客户端之间,代理服务器充当目标服务器的代表。
    • 客户端发起请求时,请求直接发送给反向代理服务器,然后由代理服务器根据配置和负载均衡策略,将请求转发给后端的目标服务器。
    • 客户端并不知道实际提供服务的是哪个目标服务器,而是与反向代理服务器进行通信。
    • 反向代理常用于负载均衡、高可用性、安全性等方面,可以隐藏后端服务器的真实信息,并提供更好的性能和可扩展性。

区别

下面是正向代理和反向代理的区别以及它们的特点,用表格形式表示:

特点 正向代理 反向代理
位置 位于客户端与目标服务器之间 位于目标服务器与客户端之间
代理角色 代理服务器充当客户端的代表 代理服务器充当目标服务器的代表
通信流向 客户端 -> 代理服务器 -> 目标服务器 客户端 -> 代理服务器 -> 目标服务器
目的 隐藏客户端的真实信息,提供访问控制、缓存、安全性等 隐藏目标服务器的真实信息,提供负载均衡、高可用性、安全性等
请求方式 客户端发起请求给代理服务器,代理服务器转发请求给目标服务器 客户端发起请求给代理服务器,代理服务器根据配置和负载均衡策略转发请求给目标服务器
客户端感知 客户端知道自己使用了代理服务器 客户端不知道实际提供服务的是哪个目标服务器
目标服务器感知 目标服务器感知到代理服务器的存在 目标服务器不感知客户端使用了反向代理
应用场景 客户端访问互联网,提供匿名访问、访问控制、缓存等特定服务 负载均衡、高可用性、安全性、隐藏真实服务器信息等
示例 企业内网用户通过代理服务器访问互联网 多个服务器集群通过反向代理提供服务

这个表格总结了正向代理和反向代理的一些基本特点和区别,以及它们在网络通信中的应用场景。需要根据具体的需求和场景来选择适合的代理方式。

总结
正向代理位于客户端与目标服务器之间,代理服务器充当客户端的代表;反向代理位于目标服务器与客户端之间,代理服务器充当目标服务器的代表。正向代理隐藏了客户端的真实信息,反向代理隐藏了目标服务器的真实信息。它们的作用和使用场景不同,但都能提供一定程度的代理和中转功能,增加了网络通信的灵活性和安全性。

@yanlele yanlele added 小米 公司标签 网络 web 网络相关 labels Jun 4, 2023
@yanlele yanlele added this to the milestone Jun 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
小米 公司标签 网络 web 网络相关
Projects
None yet
Development

No branches or pull requests

1 participant