http proxy的原理是什么
Http代理的原理
代理服务器会自动提取请求数据包中的HTTP请求数据发送给服务端,并将服务端的HTTP响应数据转发给发送请求的客户端,HTTP代理服务器使用的端口通常是8080。
- 对于Web客户端来说,代理扮演的服务器角色,接收请求(Request),返回响应(Response)
- 对于Web服务器来说,代理扮演的客户端角色,发送请求(Request),接收响应(Response)
HTTP 代理步骤
客户端向代理发起TCP连接;- 代理接收客户端的连接,双方
建立连接; 客户端向代理发送HTTP请求,请求内容和没有HTTP代理的内容完全相同;- 代理
解析HTTP请求; 代理向服务器发起TCP连接;服务器接收代理的连接;代理向服务器发送HTTP请求(这个HTTP请求是基于用户的HTTP请求,可能会有修改)服务器发送响应给代理;代理发送响应给发送请求的客户端;
不同HTTP代理的区别
- 全匿名代理,不改变客户端的request fields(请求信息),使服务器端看来就像有个真正的客户浏览器在访问。客户端的真实IP是隐藏起来的。
- 普通匿名代理,能隐藏客户端的真实IP,但会更改客户端的request fields(请求信息),服务器端有可能会被认为使用了代理。
- 透明代理(简单代理),改变客户端的request fields(请求信息),并会传送真实IP地址。
HTTPS代理
HTTPS代理有多种做法,通常使用CONNECT method,通过proxy建立一条隧道(隧道代理),这样,proxy无法解密数据;此外,还有一种类似于中间人攻击的代理手法。
CONNECT方法代理步骤
客户端向代理发起CONNECT请求;代理向服务端发起TCP连接请求;- 当TCP连接建立完成后,
代理向客户端返回HTTP/1.0 OK,隧道建立完成; 代理转发客户端的数据给服务器,转发服务器的数据给客户端,直到任何一方连接结束;
可参考HTTP、HTTPS代理分析及原理
