我看到许多隧道主持人:443在Fiddler交通拦截,当我点击它时,我看到下面的信息: 所选会话是HTTP CONNECT隧道。此隧道使客户端能够通过HTTP代理服务器(如Fiddler)发送原始流量(例如,HTTPS加密的流或WebSocket消息)。 我也搜索了这个 - Fiddler2: Decrypt HTTPS traffic and Tunnel to host:443
但这些没有回答我的问题,为什么我们需要HTTP CONNECT隧道?为什么客户需要发送原始流量?
答案 0 :(得分:2)
请参阅https://textslashplain.com/2015/11/19/understanding-connect-tunnels/
tl; dr:浏览器需要向代理发送CONNECT
个隧道请求,以便代理知道应该向哪个服务器发送流量。
HTTPS提供的加密功能可防止代理服务器查看请求的URL或HOST
标头,这些是代理通常决定将请求发送到何处的方式。因此,对于HTTPS流量,需要采用不同的方法 - 该方法是客户端告诉代理:“嘿,给我一个隧道到example.com
并让我知道它什么时候准备就绪。”代理执行此操作并告知客户端HTTP/200 Connection established
。此时,代理变为盲字节洗牌器,从客户端获取字节并将它们发送到服务器并将服务器回复的字节返回给客户端。