我正在使用代理服务器的 SSL 隧道连接到目标服务器。我使用 http 连接到代理服务器,使用 HTTPS 连接到目标服务器。 SSL 隧道正常工作,我可以与远程服务器交换 HTTPS 消息,但是有一个问题。代理服务器在其对 urllib2 建立我需要查看的 SSL 隧道的请求的回复中返回一个 header ,但我没有看到使用 urllib2 (Python 2.7.3) 访问它的方法。
我想理论上我可以自己实现 SSL 隧道握手,但这会让我比我想要的(或者我觉得舒服的)更深入地了解协议(protocol)。
有没有办法在建立 SSL 隧道时使用 urllib2 访问回复?
更新:
下面是使用代理服务器连接目标服务器的代码(代理服务器和目标服务器的URL不是真实的):
proxy_handler = urllib2.ProxyHandler({'https': 'http://proxy.com'})
url_opener = urllib2.build_opener (proxy_handler)
request = urllib2.Request ('https://target_server.com/')
response = url_opener.open (request)
print response.headers.dict
我使用 WireShark 查看消息流量。 WireShark 不会向我显示与目标服务器交换的消息正文,因为它们已加密,但我可以看到 SSL 隧道握手的正文。我可以看到我感兴趣的 header 从代理服务器返回。
最佳答案
您如何调用 https 页面。
你在用吗
resp = urllib2.urlopen('https')
resp.info().headers
关于python - urllib2:如何从 SSL 隧道回复访问 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13483541/