coderedcorp / wagtail-cache

A simple page cache for Wagtail based on the Django cache middleware.
Other
87 stars 29 forks source link

Use etags #72

Open gwenya opened 4 months ago

gwenya commented 4 months ago

As discussed in #69 this PR sets Etag headers on responses and returns a Not Modified response instead of the cached response if the client sent an If-None-Match header that matches the Etag of the cached response. The Etag is set with Django's set_response_etag() util, which just hashes the content of the response. If the response already has an etag then that is respected.

It also adjusts the Cache-Control header to either set no-cache or must-revalidate depending on whether the response has a max-age.

I am not sure yet what the Cache-Control and Expires headers on a Not Modified response should be set to.