正向代理和反向代理释义

60 篇文章 0 订阅
18 篇文章 0 订阅
本文通过比喻解释了正向代理和反向代理的概念,指出它们分别站在客户端和服务端立场上,提供身份隐藏和网络架构管理的功能。还介绍了正向代理和反向代理的历史发展及MDN的权威定义。
摘要由CSDN通过智能技术生成

代理

客户端 ====== 代理 ====== 服务端

对客户端而言,代理是服务端;对服务端而言,代理是客户端。这个很好理解吧,以祖孙三代关系为例,爸爸在儿子面前是爸爸,爸爸在爷爷面前是儿子。

无论是正向代理还是反向代理,代理总是在逻辑上位于客户端和服务端之间,充当二者通讯的媒介。

代理是叫正向代理还是叫反向代理,取决于它站那一边。站客户端一边的叫正向代理,站服务端一边的叫反向代理。

正向代理

客户端 == 代理 ========== 服务端

客户端花钱请的代理,它替客户端干活,以客户端的身份与服务端通讯。这种代理叫正向代理。

因为正向代理的存在,客户端躲在代理后面,不需要直接跟服务端通讯,具有隐藏客户端真实身份的效果,服务端不知道客户端的存在。

需要正向代理的场景主要有两个,以访问谷歌网站(服务端)为例:

  • 场景1:我(客户端)无法直接访问服务端,需要找一个代理才能间接访问到服务端
  • 场景2:我(客户端)可以直接访问服务端,但我不想让服务端知道我访问它,需要找一个代理代替我访问它(隐藏身份)

正向代理概念在历史上先于反向代理出现,当时就叫代理,直到反向代理概念出现之后,为了方便区分才改叫正向代理。现在如果不明确正向反向,通常还是指正向代理。

反向代理

客户端 ========== 代理 == 服务端

服务端花钱请的代理,它替服务端干活,以服务端的身份与客户端通讯。这种代理叫反向代理。

由于反向代理的存在,服务端躲在代理后面,不需要直接与客户端通讯,具有隐藏服务端真实身份的效果,客户端不知道服务端的存在。

反向代理的主要应用场景是:

  • 场景1:后台服务器很多,不想或不方便直接面对客户端,让反向代理服务器顶上去,可以更灵活的设计和变更服务端网络架构
  • 场景2:在墙外建立反向代理服务器,通过它间接访问服务端,墙只能看到我访问反向代理,看不到访问真实服务器(隐藏行为)

咦,根据我前面的定义,场景2里应该是正向代理啊——客户端花钱请的代理。所以大概率需要修正:谁花钱请的代理并不重要,代理的身份才重要。下文附MDN权威定义,应该更加准确和清晰。

MDN权威定义

https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling

There are two types of proxies: forward proxies (or tunnel, or gateway) and reverse proxies (used to control and protect access to a server for load-balancing, authentication, decryption or caching).

Forward proxies

A forward proxy, or gateway, or just “proxy” provides proxy services to a client or a group of clients. There are likely hundreds of thousands of open forward proxies on the Internet. They store and forward Internet services (like the DNS, or web pages) to reduce and control the bandwidth used by the group.

Forward proxies can also be anonymous and allow users to hide their IP address while browsing the Web or using other Internet services. For example, Tor routes internet traffic through multiple proxies for anonymity.

Reverse proxies

As the name implies, a reverse proxy does the opposite of what a forward proxy does: A forward proxy acts on behalf of clients (or requesting hosts). Forward proxies can hide the identities of clients whereas reverse proxies can hide the identities of servers. Reverse proxies have several use cases, a few are:

Load balancing: distribute the load to several web servers,
Cache static content: offload the web servers by caching static content like pictures,
Compression: compress and optimize content to speed up load time.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值