代理服务器和反向代理服务器之间的区别是什么?
当前回答
一些图表可能会有所帮助:
转发代理服务器
反向代理
其他回答
我从Apache的角度理解,代理意味着如果站点x代理站点y,那么请求x返回y。
反向代理意味着对y的响应进行调整,以便所有对y的引用都变为x。
因此,用户无法判断是否涉及代理。。。
转发代理服务于用户:它帮助用户访问服务器。
反向代理服务于服务器:它保护服务器不受用户影响。
Cloudflare有一篇很棒的文章,其中有详细解释这一点的图片。检查此处:什么是反向代理?|代理服务器说明
代理:它代表客户提出请求。因此,服务器将向代理返回响应,代理将向客户端转发响应。事实上,服务器永远不会“了解”客户端是谁(客户端的IP地址);它将只知道代理。然而,客户机肯定知道服务器,因为它基本上格式化了发往服务器的HTTP请求,但它只是将其交给代理。
反向代理:它代表服务器接收请求。它将请求转发给服务器,接收响应,然后将响应返回给客户端。在这种情况下,客户端永远不会“了解”谁是实际的服务器(服务器的IP地址)(有些例外);它将只知道代理。服务器将知道或不知道实际的客户端,这取决于反向代理的配置。
根据我的理解。。。
首先,众所周知,代理意味着“代表他人的权力”。现在有两件事,正向代理和反向代理。
转发代理服务器
假设您想访问“Google”,那么“Google”将有n个服务器来响应特定请求。
现在,在这种情况下,当您向Google请求某些内容,并且不希望Google看到您的IP地址时,您将使用转发代理,如下所述。
A.→ B→ C
现在你是A,通过B发送请求。所以C会认为请求来自B,而不是A。通过这种方式,你可以防止客户端的IP地址暴露在外部世界。
反向代理
现在,在这种情况下,为了让您理解,我们将采用转发代理的相同情况。在这里,你已经向谷歌请求了一些东西,然后谷歌会将一个请求发送到应用服务器或另一个代理服务器以获得响应。因此,这些事情将发生如下所述。
A.→ B→ C
C→ D
C← D
A.← B← C
从上图中,您可以看到一个请求已从B发送到C,而不是从a发送到C。然后从C将有一个请求发送到D。类似地,响应将从D发送到C然后发送到B和a。
上图表明,尽管两个代理的行为方式相同,但重要的只是上下文,但客户端代理隐藏客户端信息,而服务器端代理将隐藏服务器端信息。