2010-12-02 66 views
10

Django合作後,我看到人們傾向於推薦使用GZIP Middleware來壓縮HTML頁面。我應該使用GZIP壓縮中間件嗎?

然而,WSGI v1.0 specification告訴我們:

(注:應用程序和中間件不得申請任何種類的Transfer-Encoding自己的輸出,如分塊或使用gzip壓縮;作爲「一跳一跳」操作中,這些編碼是實際的Web服務器/網關的省份。見下Other HTTP Features,瞭解更多信息。)

這表明,壓縮應該留給服務器/網關。這很有道理,因爲服務器可能會更快。另外,它可能比gzip更喜歡SDCH,因爲大多數現代Chrome/Chromium瀏覽器都支持它。

所以我的問題仍然存在,我應該使用中間件來壓縮我的回答嗎?具體而言,Google App Engine的正確選擇是什麼?

編輯:

掛架本書還包含一個example gzip middleware

我沒有提到我的選擇框架是Pyramid(ex-repoze.bfg)。

回答

8

如果客戶端支持,則應用引擎already does會壓縮內容。

如果客戶端發送的HTTP標頭與 指示客戶端 可以接受壓縮的請求(gzip壓縮) 內容,應用程序引擎自動壓縮 響應數據和 附加適當的響應 頭。它使用 接受編碼和用戶代理請求 標頭來確定客戶端是否可以可靠地接收壓縮的響應。 定製客戶端可以通過指定 接受編碼和用戶代理標頭 來強制內容爲 ,其值爲「gzip」。

+0

鑑於GAE壓縮靜態文件,是否有任何意義,性能明智,使用縮小的JavaScript/css/html? – speedplane 2012-12-13 07:56:50