我应该使用GZIP压缩中间件吗?

时间:2010-12-02 19:57:41

标签: google-app-engine wsgi

Django合作后,我发现人们倾向于建议使用GZIP Middleware来压缩HTML网页。

然而,WSGI v1.0 specification告诉我们:

  

(注意:应用程序和中间件不得将任何类型的Transfer-Encoding应用于其输出,例如分块或gzipping;作为“逐跳”操作,这些编码是实际的Web服务器/网关的省份。有关详细信息,请参阅下面的Other HTTP Features。)

这表明压缩应留给服务器/网关。这是有道理的,因为服务器可能要快得多。此外,它可能比gzip更喜欢SDCH,因为大多数现代Chrome / Chromium浏览器都支持它。

所以我的问题仍然存在,我是否应该使用中间件压缩我的回复?具体来说,Google App Engine的正确选择是什么?

修改

Pylons Book还包含example gzip middleware

我没有提到我的选择框架是Pyramid(ex-repoze.bfg)。

1 个答案:

答案 0 :(得分:8)

App Engine already does压缩内容(如果客户支持)。

  

如果客户端发送HTTP标头   请求表明客户端   可以接受压缩(gzipped)   内容,App Engine压缩   自动响应数据   附上适当的回应   头。它同时使用了   Accept-Encoding和User-Agent请求   用于确定客户端是否可以的标头   可靠地接收压缩响应。   自定义客户端可以强制内容   通过指定两者来压缩   Accept-Encoding和User-Agent标头   值为“gzip”。