如果要通过HTTP代理连接到HTTPS网站,则需要使用
CONNECTHTTP动词(因为这是HTTPS代理的工作方式)。在这种情况下,代理服务器仅连接到目标服务器,并将服务器发送的所有内容中继回客户端的套接字(反之亦然)。在这种情况下,不涉及缓存(但您可能能够记录要连接的主机)。
交换看起来像这样(客户端代理):
C->P: ConNECT target.host:443 HTTP/1.0C->P:P->C: 200 OKP->C:
此后,代理仅打开一个到目标服务器的普通套接字(尚无HTTP或SSL /
TLS),并在初始客户端和目标服务器之间中继所有内容(包括客户端发起的TLS握手)。客户端将其具有的现有套接字升级到代理以使用TLS /
SSL(通过启动SSL / TLS握手)。就客户端而言,一旦客户端读取了“ 200”状态行,就好像它已直接建立到目标服务器的连接一样。



