gpt4 book ai didi

asp.net-mvc - 如何最好地使用 ASP.NET MVC 中的 Expires header ?

转载 作者:行者123 更新时间:2023-12-04 12:26:07 25 4
gpt4 key购买 nike

我希望能够为用户通过 GET 请求下载的某些项目设置较长的过期时间。

我想说“这有 10 分钟的好处”(即我想设置一个 Expires header +10 分钟)。请求是通过 AJAX 显示在页面中的 HTML 片段,它们对用户的 session 很有用。 我不想回到服务器并得到 304 如果他们再次需要它们 - 我希望浏览器缓存立即给我相同的项目。

我发现一篇关于 MVC Action filter caching and compression 的文章已经快一年了.这将创建一个自定义 ActionFilter 来更改 expires header 。我已经在使用压缩过滤器,它对我生成的一些自定义 css 非常有用(94% 的压缩率!)。

我有两个主要问题:

1)我真的必须使用这种方法吗?如果我这样做,我很好,但是 MVC 或 OutputCache 功能中真的没有功能可以为我执行此操作吗?在“传统” ASP.NET 中,我总是手动设置 Expires header ,但我们不能再这样做了 - 至少不在 Controller 中。

2)如果我确实使用这种过滤器方法 - 它是否会干扰 OutputCache 策略 - 我希望能够在 web.config 中进行控制。我有点认为这两者是相互排斥的,你不会想要两者 - 但我不完全确定。

最佳答案

  • 不,您不必使用此方法。但是,我认为这可能是最好的选择方法,因为它使 Controller 更易于测试并且更少感知网络。另一种方法是在 Controller 中手动设置标题,如下所示:

    Response.AddHeader("Expires", "Thu, 01 Dec 1994 16:00:00 GMT");
  • 好吧,OutputCache 属性控制操作何时运行,以及何时返回缓存的 HTML。 Expires 告诉浏览器何时重新获取 HTML。所以我不会称它们为相互排斥的,但它们肯定是同一枚硬币的两个方面,你认为你可能不需要两者都是正确的。我建议查看 the HTTP spec决定什么最适合您的应用程序。
  • 关于asp.net-mvc - 如何最好地使用 ASP.NET MVC 中的 Expires header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/552710/

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