第二节:如何代理HTTPS请求
先简单说下SSL/TLS,SSL/TLS协议是为了解决这三大风险而设计的
基于SSL/TLS设计的第(1)点,可知代理是无法像解析单纯的http协议那样解析https的报文,从而也无法像”代理”http那样“代理”https。在实际网络中,每个网络请求都会经过各种个样的网络节点,代理也是其中很常见的一种。https请求如何通过这些http代理节点连接到目标服务器?为了解决这类问题,http tunnel(隧道)技术就派上了用场。
HTTP Tunnel(隧道)
http和https关于分层的对比
HTTP Tunnel的建立过程
HTTP Tunnel的建立步骤
第一步:客户端像http代理发起CONNECT请求。
第二步:http代理接收到CONNECT请求后与abc.com的433端口建立tcp连接。
这样一个http隧道就建立成功了。
代码实现:
完整源码:
npm script运行方式
设置完代理后,现在可以用浏览器尝试打开https的链接了。