Python中的HTTPS会话重用

Python中的HTTPS会话重用,第1张

概述我希望能够对HTTPS服务器使用并行请求.目前,我正在使用PyCURL,但它无法在不同的句柄之间重用相同的SSL会话ID,并且每个句柄每次只能处理一次下载/上传. 考虑到协商需要时间(特别是因为使用了客户端证书),重用id(因为浏览器可以从web并行下载少量资源),这可能会提高性能. 那么,现在有人关于PyCURL的一些解决方法,或支持它的替代HTTP模块吗? httplib似乎也没有做这项工作. 我希望能够对httpS服务器使用并行请求.目前,我正在使用PyCURL,但它无法在不同的句柄之间重用相同的SSL会话ID,并且每个句柄每次只能处理一次下载/上传.

考虑到协商需要时间(特别是因为使用了客户端证书),重用ID(因为浏览器可以从web并行下载少量资源),这可能会提高性能.

那么,现在有人关于PyCURL的一些解决方法,或支持它的替代http模块吗? httplib似乎也没有做这项工作.

解决方法 目前还没有像 here那样容易访问重用会话ID,我还没有听说过任何简单的解决方案 – 但它应该只是在初始握手后重新使用它来保存你的上下文.

PyOpenSSL暴露了这些机制,但其水平低于大多数人想要的水平.我把钱花在以下一系列事件上:

>首先弄清楚如何重新使用会话,只做一个概念验证.一个有用的工具是openssl二进制文件(人们通常用来制作SSL密钥).它有一个内置的客户端,你可以像这样使用:

openssl s_clIEnt -connect HOST:443

>您可以打印出各种好的诊断内容(例如您的SSL会话ID),这样您就可以在直接问题的范围之外进行验证.
>一旦你有了这个,httplib的SSL支持非常简单,httpSConnection是一个非常薄的httpconnection包装器(只有两个扩展类的方法.你要修改的是连接.

httplib.py – httpSConnection类

def connect(self):        "Connect to a host on a given (SSL) port."        sock = socket.create_connection((self.host,self.port),self.timeout,self.source_address)        if self._tunnel_host:            self.sock = sock            self._tunnel()        self.sock = ssl.wrap_socket(sock,self.key_file,self.cert_file)
总结

以上是内存溢出为你收集整理的Python中的HTTPS会话重用全部内容,希望文章能够帮你解决Python中的HTTPS会话重用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存