Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#18473 closed Bug (fixed)

Contradictory advice on middleware order

Reported by: david@… Owned by: nobody
Component: Documentation Version: 1.4
Severity: Normal Keywords: middleware order GZipMiddleware UpdateCacheMiddleware
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: 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 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.

Change History (3)

comment:1 Changed 3 years ago by lukeplant

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Triage Stage changed from Unreviewed to Accepted
  • Type changed from Cleanup/optimization to Bug

The gzip docs should say something like it should run after anything else that needs to read/write the response body.

comment:2 Changed 3 years ago by Tim Graham <timograham@…>

  • Resolution set to fixed
  • Status changed from new to closed

In 3e0857041b6bfc9deef392315c978abede706c92:

Fixed #18473 - Fixed a suggestion that GZipMiddleware needs to be first in the list of middleware.

comment:3 Changed 3 years ago by Tim Graham <timograham@…>

In 73991b0b325f07fc62179c3684ed921f141e69ce:

[1.4.X] Fixed #18473 - Fixed a suggestion that GZipMiddleware needs to be first in the list of middleware.

Backport of 3e0857041b from master

Note: See TracTickets for help on using tickets.
Back to Top