Cache middleware description
|Reported by:||anonymous||Owned by:||nobody|
|Cc:||Triage Stage:||Ready for checkin|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Order of MIDDLEWARE_CLASSES
If you use CacheMiddleware, it’s important to put it in the right place within the MIDDLEWARE_CLASSES setting, because the cache middleware needs to know which headers by which to vary the cache storage. Middleware always adds something to the Vary response header when it can.
Put the CacheMiddleware after any middlewares that might add something to the Vary header. The following middlewares do so:
SessionMiddleware adds Cookie
GZipMiddleware adds Accept-Encoding
First, the list lacks LocaleMiddleware as it adds vary Accept-Language.
Second, the responce is handled by middleware in reverse order, hence CacheMiddle must be placed BEFORE any middleware that change vary header.