2024-09-29 00:15:19 发布
网友
我使用的是带SSL的gevent.pywsgi服务器,当使用IE或Chrome时,流量是内容大小的10倍到100倍,传输速度非常非常非常慢。 不过,Firefox可以接受这一点。如果我使用stunnel来提供SSL(具有相同的证书),那么一切都可以正常工作。在
gevent.pywsgi
stunnel
我在这里做了一个独立的测试用例:http://dl.dropbox.com/u/7138409/Chrome-Test.zip
在python2.6和2.7以及不同的gevent版本上都会发生。在
这个错误的愚蠢是压倒性的。 首先,我使用Wireshark对流进行了剖析,令我惊讶的是,我看到响应的每个字节都在其自己的SSL段中传输。 问题是我从WSGI处理程序返回raw bytestrings,而正确的做法是返回包含在列表中的原始bytestrings!在
下面是一个工作示例:
import gevent import gevent.pywsgi ssl = { 'certfile': 'ajenti.crt', 'keyfile': 'ajenti.key', 'ciphers': 'RC4', } def dispatch(env, s_r): s_r('200 OK', [('Content-Type', 'text/plain')]) s = 'a' * 1000 return [s] server = gevent.pywsgi.WSGIServer( ('0.0.0.0', 8001), application=dispatch, **ssl ) server.serve_forever()
这个错误的愚蠢是压倒性的。 首先,我使用Wireshark对流进行了剖析,令我惊讶的是,我看到响应的每个字节都在其自己的SSL段中传输。 问题是我从WSGI处理程序返回raw bytestrings,而正确的做法是返回包含在列表中的原始bytestrings!在
下面是一个工作示例:
相关问题 更多 >
编程相关推荐