GAE上启用Gzip压缩

标签:Google App Engine, Python

今天在测试WSGI框架时发现输出头中没有Content-Encoding: gzip,即内容不是gzip压缩的。

接着我输出了这个头,发现本地开发服务器上并没效果:
start_response('200 OK', [('Content-type','text/html; charset=utf-8'), ('Content-Encoding', gzip')])
接着手动压缩了一下,发现乱码了,而且仍然没有输出gzip头:
zbuf = cStringIO.StringIO()
zfile = gzip.GzipFile(mode='wb', compresslevel=9, fileobj=zbuf)
zfile.write(content)
zfile.close()
content = zbuf.getvalue()
不过部署后发现输出gzip头了,只是乱码没有解决。

于是我读了下源码,发现开发服务器里会把Content-Encoding头去掉,而webapp也会删掉这个头。
再看了下文档,发现如果Accept-Encoding和User-Agent里标明能接受gzip,且有Content-Encoding: gzip头的话,服务器会自动压缩。
所以开启方法就很简单了,和我一开始所做的一样,只不过只能在生产服务器上生效。

3条评论 你不来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?