代理服务器和反向代理服务器之间的区别是什么?
当前回答
如果没有代理
从客户端和服务器端看是相同的:
客户端->服务器
代理
从客户端:
客户端->代理->服务器
从服务器端:
客户端->服务器
反向代理
从客户端:
客户端->服务器
从服务器端:
客户端->代理->服务器
所以我认为,如果它是由客户端用户设置的,它就叫做代理如果它由服务器管理器设置,则它是反向代理。
由于设置它的目的和原因不同,它们以不同的方式处理数据并使用不同的软件。
User side | Server side
client <-> proxy <--> reverse_proxy <-> real server
其他回答
我发现下图非常有用。它只是显示了通过Internet从客户端到服务器的正向和反向代理设置的架构。此图将帮助您更好地理解qyb2zm302的答案和其他答案。
您还可以观看由Peter Silva制作的F5的DevCentral视频。
图片来源:Quora。然而,根据Martijn Pieters的说法,这张图片可能来自Pulse Secure Community或Julien Pauli的网站(法语)developez.com。
这让我想起了一句经典的谚语:
一张图片值1000个字。
代理服务器(也称为正向代理)和反向代理服务器之间的区别取决于参考点。
从技术上讲,两者完全相同。两者都具有代表源向目的地传输数据的相同目的。
区别在于“代理服务器代表谁/代理服务器代表什么?”
如果代理服务器代表最终用户向互联网服务器转发请求(例如:大学中的学生通过大学代理服务器访问互联网),则代理称为“转发代理”或简称“代理”。
如果代理服务器代表服务器响应传入的请求,则该代理被称为“反向代理”,因为从最终用户的角度来看,它的工作方向相反。
反向代理的一些示例:
web服务器前面的负载平衡器充当代表实际web服务器的反向代理。API网关免费网站托管服务(如facebook页面/博客页面服务器)也是反向代理。实际内容可能在某个web服务器中,但外部世界通过反向代理发布的特定url知道它。
转发代理的使用:
监视来自组织的所有出站internet连接对internet浏览应用安全策略并阻止下载恶意内容阻止访问特定网站
使用反向代理:
显示网站的友好URL跨多个web服务器执行负载平衡应用安全策略并保护实际web服务器免受攻击
代理:它代表客户提出请求。因此,服务器将向代理返回响应,代理将向客户端转发响应。事实上,服务器永远不会“了解”客户端是谁(客户端的IP地址);它将只知道代理。然而,客户机肯定知道服务器,因为它基本上格式化了发往服务器的HTTP请求,但它只是将其交给代理。
反向代理:它代表服务器接收请求。它将请求转发给服务器,接收响应,然后将响应返回给客户端。在这种情况下,客户端永远不会“了解”谁是实际的服务器(服务器的IP地址)(有些例外);它将只知道代理。服务器将知道或不知道实际的客户端,这取决于反向代理的配置。
转发代理服务于用户:它帮助用户访问服务器。
反向代理服务于服务器:它保护服务器不受用户影响。
让我们考虑一下服务的目的。
转发代理:
代理帮助用户访问服务器。
在反向代理中:
代理帮助用户访问服务器。
在后一种情况下,受代理帮助的人不再是用户,而是服务器,这就是我们称之为反向代理的原因。