Contradictory advice on middleware order
|Reported by:||Owned by:||nobody|
|Severity:||Normal||Keywords:||middleware order GZipMiddleware UpdateCacheMiddleware|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
It is suggested to place this first in the middleware list, so that the compression
of the response content is the last thing that happens.
you need to make sure that UpdateCacheMiddleware appears before any other middleware
that might add something to the Vary header. The following middleware modules do so:
SessionMiddleware adds Cookie
GZipMiddleware adds Accept-Encoding
I suspect https://docs.djangoproject.com/en/dev/ref/middleware/#django.middleware.gzip.GZipMiddleware might need to be changed. With GZipMiddleware first, not only will it alter the "Vary" header handling, but presumably it will be recompressing the uncompressed cached content on each request, and it would be better to cache the compressed content instead.