HTTPS代理实现原理

##HTTPS代理简介 HTTPS代理是HTTP/1.1协议上才能实现的功能,主要原理是客户端发送一个CONNECT请求,代理服务器收到请求后,与请求中指定的服务器建立连接,然后开始双向传送数据.

HTTPS代理虽然被称为HTTPS代理,实际上却可以处理任何类型的TCP请求.因为只要和服务器建立连接后,接下来的数据格式没有任何限制(具体情况还得看服务器配置,一般情况下squid只允许访问443端口)

##HTTP CONNECT 下面是HTTP CONNECT方法的数据包

CONNECT / HTTP/1.1
Host: www.google.com:443
Proxy-Connection: keep-alive

代理服务器接受到这样的请求后,与Host中的主机www.google.com:443建立连接,然后返回

HTTP/1.1 200 OK

接下来客户端发送的所有数据包都会被代理服务器转发给www.google.com:443,从www.google.com:443接受到的数据也会直接转发给客户端

Published: November 06 2012