HTTP 的两种代理简介
时间:2023-02-10 16:09:01 | 来源:建站知识
时间:2023-02-10 16:09:01 来源:建站知识
http的代理分为两种,一种是普通代理,一种是隧道代理
代理可以有很多的作用,例如通过代理来进行内容的过滤,减少对服务器的访问和提高安全性等。
普通代理
普通代理就是在客户端与服务器之间加入一个代理服务器,原本客户端与服务器之间的访问为
客户端向服务器发出请求,服务器接受到请求后将响应结果返回给客户端
当加入代理之后,这一过程变成为
客户端将请求发送到代理服务器,然后代理服务器将客户端的请求转发给服务器,服务器接受到请求后将响应的结果返回给代理服务器,最后代理服务器将从服务器得到的结果返回给客户端。
通过这一过程可以看出,如果在代理服务器上增加对请求的判断,修改等功能,就可以实现对客户端请求进行过滤的功能。
正向代理
在正向代理中,代理服务器对客户端必须是不透明的,客户端在向服务器发出请求时,必须知道代理的地址并在请求报文中加入这一部分信息。
反向代理
在反向代理中,代理服务器对客户端是透明的,即客户端以为自己直接将请求发送给了目标服务器,实际上却是被发送到了代理服务器上,这样的话,客户端不能将数据直接发送到目标服务器中,同时,也不能知道目标服务器的ip和端口,也增加了一定的安全性,这也是最广泛使用的代理方式。反向代理一般是通过修改DNS,将域名对应到代理服务器上实现的。
一般情况下,客户端只需要关心最终获取到的数据即可,并不需要考虑其中的过程,但是可以通过HTTP报头中的X-Forwarded-For字段来显示中间经过的服务器代理。每当这个报文转发到某个代理服务器上时,该代理服务器会将上一个节点的IP填写到该部分中。
注意,普通代理不支持HTTPS协议,在握手阶段就被pass。
隧道代理
使用隧道代理,首先要知道connect请求,客户端通过发送connect请求给代理服务器,当代理服务器接收到connect请求后,会与请求报文中的目标服务器建立tcp连接,之后blindly转发内容即可。
与普通代理不同,隧道代理可以支持https协议。