擅长:python、mysql、java
<p>首先,我要强调的是,您应该在web服务器级别(nginx或apache)上这样做。这有几个原因:</p>
<ol>
<li><p>性能-如果你用Python来做这件事,你就在使用一个可以处理请求的线程来进行cpu密集型的压缩。这比允许优化的web服务器处理它的效率要低得多。</p></li>
<li><p>阻塞-大多数GZip中间件将阻塞您的响应,缓冲主体,以便它可以压缩整个响应。如果您试图将任何响应流式传输回客户机,这是一个<strong>巨大的</strong>问题,因为它会被中间件捕获。这实际上违反了WSGI规范PEP333。</p></li>
</ol>
<p>考虑到所有这些,使用Python进行测试可能是有意义的,至少在开发过程中出于调试目的。在</p>
<p>因为你已经在使用金字塔,所以你已经安装了粘贴。因此,您只需将<code>paste.gzipper.GzipMiddleware</code>添加到应用程序的管道中,如下所示:</p>
<pre><code>[filter:gzip]
use = egg:Paste#gzip
compress_level = 6
[pipeline:main]
pipeline =
gzip
app
</code></pre>
<p>显然,如果您不想将压缩级别从默认值6更改为,您可以简单地将<code>egg:Paste#gzip</code>添加到管道中,而不是配置过滤器并给它一个自定义名称(<code>gzip</code>)。在</p>