我正在使用代理服务器发送 https 请求。我想只通过代理服务器来回传递某些信息(不传递给目标服务器)。这可以在进行 HTTP 请求时使用请求标头轻松完成,但对于 HTTPS 请求,标头是加密的,因此不能使用请求标头。我的代理服务器在使用 HTTPS 时提供以下选项:
将未加密数据发送到代理服务器的唯一点是使用初始 CONNECT 方法。这是您必须插入自定义标题的地方。同样,代理服务器不能在最终响应中注入额外的标头。相反,响应标头在 Connection 响应之后立即注入,如下所示:
HTTP/1.1 200 连接已建立
X-ProxyServer-IP: 123.456.789.000
最终响应标头和正文
所以我需要使用 CONNECT 方法传递标头,并读取 CONNECT 响应。似乎该https-proxy-agent
模块将允许指定要与 CONNECT 请求一起发送的标头。但是我怎样才能读取 CONNECT 响应,同时仍然完成预期的请求(例如 POST)?
我无法弄清楚如何使用request
模块或https
模块拦截 CONNECT 响应。