#22827 closed Cleanup/optimization (fixed)
Per-site cache docs vague about which middleware sets headers
| Reported by: | Owned by: | nobody | |
|---|---|---|---|
| Component: | Documentation | Version: | dev |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
The docs currently say:
Additionally, the cache middleware automatically sets a few headers in each HttpResponse:
Sets the Last-Modified header to the current date/time when a fresh (not cached) version of the page is requested.
Sets the Expires header to the current date/time plus the defined CACHE_MIDDLEWARE_SECONDS.
Sets the Cache-Control header to give a max age for the page – again, from the CACHE_MIDDLEWARE_SECONDS setting.
It's no longer clear which middleware does that, because these days what was once CacheMiddleware is now recommended as two separate components, UpdateCacheMiddleware and FetchFromCacheMiddleware. It is the UpdateCacheMiddleware that is responsible for modifying the Response's headers.
And, if being really picky:
The cache middleware caches GET and HEAD responses with status 200, where the request and response headers allow
This is dictated by the FetchFromCacheMiddleware at the beginning of the request
Change History (4)
comment:1 by , 11 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|
comment:2 by , 11 years ago
| Has patch: | set |
|---|
comment:3 by , 11 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
PR: https://github.com/django/django/pull/2955
Thanks.