我知道ResponseCache attribute
可以通过http标头属性cache-control
在客户端缓存页面。
ResponseCache middleware
,它在服务器上缓存页面(与ResponseCache attribute
相同的http标头(。
我比较这些,似乎没有什么不同,相同的功能,相同的条件。
服务器端缓存与ResponseCache attribute
没有什么不同,它们都不让请求进入控制器操作,或者这些有不同的请求管道?
那么,什么样的场景会选择ResponseCache middleware
/ResponseCache attribute
?
从文档和源代码中,我们可以找到:
响应缓存中间件
确定何时可缓存响应、存储响应以及从缓存提供响应。
响应缓存属性指定在响应缓存中设置适当的标头所需的参数。
它用于配置和创建(通过IFilterFactory(ResponseCacheFilter。响应缓存筛选器执行更新响应的相应 HTTP 标头和功能的工作。过滤器:
删除 Vary、Cache-Control 和 Pragma 的任何现有标头。
根据 ResponseCacheAttribute 中设置的属性写出相应的标头。
更新响应缓存 HTTP 功能(如果设置了 VaryByQueryKeys(。
欲了解更多信息,请查看:
-
响应缓存中间件源 法典
-
响应缓存属性源代码