文章目录
- 正向代理
- 反向代理
先放个链接, 正向代理和反向代理一直很晕乎, 看了这个博客感觉写的特别的好, 推荐
Anker - 正向代理和方向代理的总结
- 无论正向代理还是反向代理, 请求模型其实是一致的, 如图所示
- 我们假设用户为 A, 代理服务器为 B, 实际处理请求的服务器为 C
① A 向 B 发起请求
② 如果有相应的结果, 直接返回给 A 如果没有, B 向 C 发起请求
③ C 响应请求, 把结果返回给 B
④ B 将结果返回给 A - 正向代理, 框前两个; 反向代理, 框后两个
正向代理
- 通常是配置在客户端
- 情景
- A 知道 C 的存在, 但无法直接访问
- A 知道 C 的存在, 但 C 响应速度太慢, 使用 B 提高响应速度
- 由于是代理服务器发起请求, 实际服务器并不知道用户的存在, 对于实际服务器来说, 代理就是"用户"
- 正向代理服务器可以作为缓存服务器, 加快返回给用户数据的速度
反向代理
- 通常是配置在服务器端
- 情景
- A 通过访问 B 拿到访问 C 相同的结果
- A 知道 C 的存在, 但无法直接访问
- A 知道 C 的存在, 但 C 响应速度太慢, 使用 B 提高响应速度
- 由于是代理服务器发起请求, A 大多数情况下并不知道 C 的存在, 对于用户来说, 代理就是"实际服务器"
情境中的②和③, A 是知道 C 的存在的, 但是由于各种原因直接访问并不能很好的得到响应, 所以使用反向代理
它和正向代理得到的效果是相同的, 只是配置位置不同, 一个在 client, 一个在 server - 反向代理可以作为 LoadBalance 存在