Должен ли я использовать промежуточное ПО для сжатия GZIP или нет?

Работая с Django, я видел, что люди склонны рекомендовать использовать GZIP Middleware для сжатия HTML-страниц.

Однако спецификация WSGI v1.0 сообщает нам:

(Примечание: приложения и промежуточное программное обеспечение не должны применять любой тип Transfer-Encoding к их выходу, например, chunking или gzipping, как операции "прыжок по ходу", эти кодировки являются провинцией фактического веб-сервера/шлюза. Подробнее см. Другие функции HTTP ниже.)

Это говорит о том, что сжатие должно быть оставлено на сервере/шлюзе. Это имеет смысл, поскольку сервер, вероятно, намного быстрее в этом. Кроме того, он может предпочесть SDCH по сравнению с gzip, как это делают большинство современных браузеров Chrome/Chromium.

Итак, мой вопрос остается, следует ли использовать промежуточное программное обеспечение для сжатия моих ответов или нет? В частности, какой правильный выбор для Google App Engine?

EDIT:

Книга Pylons также содержит пример промежуточного программного обеспечения gzip.

Я не упоминал, что мои рамки выбора Pyramid (ex-repoze.bfg).

Ответ 1

App Engine уже сжимает содержимое, если клиент поддерживает его.

Если клиент отправляет HTTP-заголовки с запрос, указывающий, что клиент может принимать сжатые (gzipped) контента, App Engine сжимает ответные данные автоматически и придает соответствующий ответ заголовки. Он использует как Запрос Accept-Encoding и User-Agent заголовки, чтобы определить, может ли клиент надежно получать сжатые ответы. Пользовательские клиенты могут заставить контент быть сжимаются путем указания как Заголовки Accept-Encoding и User-Agent со значением "gzip".