代理服务器和反向代理服务器之间的区别是什么?
当前回答
从用户的角度看:向代理或反向代理服务器发送请求时:
proxy-需要两个参数:1)要获取什么,以及2)要使用哪个代理服务器反向代理-需要一个参数:1)获取什么
反向代理从用户不知道的另一个服务器获取内容,并返回结果,就像它来自反向代理服务器一样。
其他回答
代理服务器(也称为正向代理)和反向代理服务器之间的区别取决于参考点。
从技术上讲,两者完全相同。两者都具有代表源向目的地传输数据的相同目的。
区别在于“代理服务器代表谁/代理服务器代表什么?”
如果代理服务器代表最终用户向互联网服务器转发请求(例如:大学中的学生通过大学代理服务器访问互联网),则代理称为“转发代理”或简称“代理”。
如果代理服务器代表服务器响应传入的请求,则该代理被称为“反向代理”,因为从最终用户的角度来看,它的工作方向相反。
反向代理的一些示例:
web服务器前面的负载平衡器充当代表实际web服务器的反向代理。API网关免费网站托管服务(如facebook页面/博客页面服务器)也是反向代理。实际内容可能在某个web服务器中,但外部世界通过反向代理发布的特定url知道它。
转发代理的使用:
监视来自组织的所有出站internet连接对internet浏览应用安全策略并阻止下载恶意内容阻止访问特定网站
使用反向代理:
显示网站的友好URL跨多个web服务器执行负载平衡应用安全策略并保护实际web服务器免受攻击
正向代理与反向代理(2012)非常清楚地解释了正向代理和反向代理之间的区别。
qyb2zm302的答案很好地详细描述了代理的应用,但它忽略了正向代理和反向代理之间的基本概念。对于反向代理,X→ Y→ Z、 X知道Y而不是Z,反之亦然。
代理只是通信(请求+响应)的中间人。客户端<->代理<->服务器
客户端代理:(客户端<->代理)<->服务器
代理人代表客户行事。客户知道链中涉及的所有三台机器。服务器没有。
服务器代理:客户端<->(代理<->服务器)
代理代表服务器行事。客户端只知道代理。服务器知道整个链条。
在我看来,正向和反向只是客户端和服务器代理的混淆、依赖于透视的名称。我建议放弃前者,改用后者,进行明确的沟通。
当然,让事情更复杂的是,并不是每台机器都是客户端或服务器。如果上下文中存在歧义,最好明确指定代理所在的位置以及它通过隧道传输的通信。
一对简单的定义是:
转发代理:代表请求者(或服务使用者)
反向代理:代表服务/内容生产者行事。
让我们考虑一下服务的目的。
转发代理:
代理帮助用户访问服务器。
在反向代理中:
代理帮助用户访问服务器。
在后一种情况下,受代理帮助的人不再是用户,而是服务器,这就是我们称之为反向代理的原因。
最好的解释是这里的图表:
当正向代理代表客户端(或请求主机)时,反向代理代表服务器。
实际上,正向代理隐藏客户端的身份,反向代理隐藏服务器的身份。