当前位置: 代码迷 >> 综合 >> 代理服务器(分为两种:代理、反向代理)
  详细解决方案

代理服务器(分为两种:代理、反向代理)

热度:59   发布时间:2023-12-26 21:03:03.0

代理(分为两种:代理、反向代理)

一般情况:客户端直接访问服务器;

客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP 来完成的,一般 TCP 连接的端口号是80。 建立连接后,客户机发送一个请求给服务器,服务器接到请求后,给予相应的响应信息;

 1. 正向代理(代理服务器给客户端做经纪人)

客户端不直接访问web服务器,而是通过一个代理服务器间接访问;

客户端把访问请求发送给代理服务器,由代理服务器获得目标服务器的数据并返回给客户端。客户端是清楚目标服务器的地址的,而目标服务器是不清楚客户端的地址,它只知道来自哪个代理服务器,所以正向代理可以屏蔽或隐藏客户端的信息。 

注:当使用HTTPS协议时,代理服务器的作用有很大的不同;

 当使用HTTPS时,浏览器无法与代理服务器进行SSL握手,因为这样做会破坏安全隧道,使通信易于遭受拦截攻击。因此,浏览器必须将代理作为一个纯粹的TCP级中继,由代理服务器传递浏览器与目标web服务器之间的所有网络数据,并与目标服务器进行正常的SSL握手。浏览器使用CONNECT方法向代理服务器提交一个HTTP请求,并指定URL中的目标主机名称与端口号,从而建立这种中继。如果代理允许该请求,它会返回一个含200状态码的HTTP响应,一直开放连接,从此以后作为目标Web服务器的纯粹级中继。

 2. 反向代理(代理服务器给服务器做经纪人)

在客户端看来,代理服务器就是“客户端想要访问的服务器”;该方式隐藏了服务器的信息;

常用的场景就是多台服务器分布式部署,像一些大的网站,由于访问人数很多,就需要多台服务器来解决人数多的问题,这时这些服务器就由一个反向代理服务器来代理,客户端发来请求,先由反向代理服务器,然后按一定的规则分发到明确的服务器,而客户端不知道是哪台服务器。常常用nginx来作反向代理。