gpt4 book ai didi

c# - HttpCacheability.NoCache 和 Response.CacheControl = "no-cache"之间有什么不同?

转载 作者:行者123 更新时间:2023-12-02 12:52:14 26 4
gpt4 key购买 nike

下面两行有什么不同? :

Response.Cache.SetCacheability(HttpCacheability.NoCache);

 Response.CacheControl = "no-cache";

最佳答案

如果您通读文档,通常情况下,根本没有任何区别。

但是,由于前者使用 Cache 对象(Asp.Net 4 或 Asp.Net MVC 中的 HttpCachePolicyBase),因此它提供:

a) 对响应对象缓存策略的抽象,在测试场景中非常有用

b) 如果 HTTP 规范由于某种原因扩展,意味着 NoCache 需要在响应中添加更多 header ,或者对响应进行其他调整,则可能具有面向 future 的能力。

它还允许根据客户端的功能透明地调整“不可缓存性”的概念;这在 HTTP 确实发展的情况下很重要 - 而且在 HTTP 1.0 和 1.1 客户端的情况下也已经很重要(HTTP 1.0 vs 1.1 中很好地总结了 1.0 和 1.1 之间的差异)。

在第二行中,您负责如何应用 no-cache 指令(使用有点神奇的字符串)——当然,它仍然是可测试的,但如果 HTTP 规范确实发生变化,那么您必须自己编写代码.

最终,使用 Response.Cache 对象比直接编码 header 更好(例如,它确实适合 ETag 和 If-Not-Modified-Since 处理) .

关于c# - HttpCacheability.NoCache 和 Response.CacheControl = "no-cache"之间有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10525172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com