当服务器缓存页面时,我认为它是这样工作的,但显然我错了。
服务器使用密钥(为端点生成)将http响应内容存储在缓存存储中
一个人可以为请求的某些方面(例如用户语言)创建单独的缓存键
我认为上述理解是有缺陷的,因为,
当我用axios
命中端点时,第一个请求在服务器上被命中,但是第二个请求甚至没有命中端点,似乎axios
正在重用先前的响应它收到了。
因此,如果我清除两个请求之间的所有缓存存储,则第二个请求不会到达请求处理程序(django中的view函数)
确实起作用,它命中了Web服务器并获取了缓存的响应。
在Django中,我正在使用from django.views.decorators.cache import cache_page
但是问题更多是Web响应缓存的常规工作
一般的Web缓存在这里很好地解释了* https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching
我猜在设置cache-control timeout
或expires
时,某些客户端永远不会到达服务器,而某些客户端确实会到达服务器。