问题标签 [cache-control]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1762 浏览

rest - RESTful API 上搜索资源的缓存控制策略

我正在创建一个 RESTful API(使用 MVC.NET)来允许外部访问业务系统。API 包含一个搜索资源。该资源采用 URI 形式“/example/search/pages/1/?query=something”。

示例:要搜索披萨,您将访问 URI“/example/search/pages/1/?query=pizza”,这将为您提供前 10 个结果。要获得结果的第二页,您需要请求“/example/search/pages/2/?query=something”等。

我使用了缓存控制 HTTP 标头来启用 API 上所有资源的公共缓存,目的是显着减少服务于 API Web 应用程序的服务器上的负载。

但是我不确定要为搜索资源使用什么缓存策略。由于资源(以及它的 URI)根据您搜索的内容而有所不同,因此缓存页面似乎没有什么意义。人们为 RESTful API 上的搜索资源推荐什么缓存策略(即通过缓存控制 HTTP 标头进行缓存)?没有缓存?到期时间很短的私人缓存?有效期短的公共缓存?

0 投票
1 回答
1211 浏览

asp.net-mvc - 帮助为测试响应标头创建单元测试,特别是 Cache-Control,以确定缓存是否已被禁用

设想:

我有一个基本控制器,它在 OnActionExecuting 覆盖中禁用缓存。

如何创建单元测试来测试这种行为?

0 投票
1 回答
319 浏览

php - 如何在 PHP 中实现这个缓存控制策略?

仅当文件自上次访问后发生更改时才提供新内容。

我该如何实施?

更新

抱歉之前没有提到,但是请求的资源是直接请求的网页,而不是图像。

0 投票
1 回答
5888 浏览

google-chrome - 如果页面显示在 FRAME 中,谷歌浏览器不会在页眉中使用缓存策略

不管我做什么:

如果页面显示在框架中,谷歌浏览器不会根据页面的内部缓存策略重新加载任何页面。就好像元标记甚至不存在一样。谷歌浏览器似乎忽略了这些标签。

由于我在其他论坛上得到了这个问题的答案,其中回复的人忽略了操作条件,我将重复一遍:当页面显示在框架中时会发生这种行为。

我使用的是最新发布的版本,并且已经升级到 5.0.375.29 测试版,但两个版本的行为是相同的。

有人愿意以一种或另一种方式确认您使用框架集看到的行为以及元标记中给出的缓存/过期策略吗?

谢谢

0 投票
1 回答
265 浏览

performance - apache 别名和.htacess 愿意了解配置吗?

在我们的本地开发环境中,我们只有一台服务器,为了向静态图像添加远期过期和缓存控制标头,我们在应用程序的根目录中保留了一个 .htaccess 文件,一切正常。但是在我们的产品中,我们有多个 apache 服务器,它们具有不同服务器上代码库的别名。在这种情况下,我不确定在哪里保留 .htacess 文件。我应该将它保存在代码库还是单独的 apache 服务器上。如何将我在 .htaccess 文件中写入的相同内容写入 httpd.conf 文件。

0 投票
1 回答
548 浏览

asp.net - 如何在 ASP.NET 中设置多个缓存控制指令

为了通过 Hailstorm 安全扫描,我必须在 ASP.NET 页面上设置几个特定的​​缓存控制指令。例如,它希望我拥有

此外

我一直在我的 C# 代码隐藏中使用以下行设置后者:

有没有一种特殊的方法可以同时指示两个指令?我只是用分号分隔它们吗?

0 投票
3 回答
100273 浏览

http - HTTP 缓存控制 max-age, must-revalidate

我有几个与 Cache-Control 相关的查询。

如果我为静态 html/js/images/css 文件指定 Cache-Control max-age=3600, must-revalidate,并在 HTTP 标头中定义 Last Modified Header:

  1. 浏览器/代理缓存(如 Squid/Akamai)是否一直到源服务器以在 max-age 到期之前进行验证?或者它会从缓存中提供内容直到 max-age 到期?
  2. 在 max-age 到期(即从缓存中到期)之后,是否有 If-Modified-Since 检查或者是否从源服务器重新下载内容而不进行 If-Modified-Since 检查?
0 投票
1 回答
1824 浏览

.htaccess - 缓存控制和过期不起作用

我设置了缓存控制并通过 .htaccess 使标头过期,但它已经没有从浏览器缓存中加载。当我输入 URI 时,我正在等待来自网站的加载。

网址: http: //www.btgmaslak.com/static/images/main_container_background_11.jpg

0 投票
2 回答
357 浏览

asp.net - ASP.NET OutputCache 指令是否实际缓存或只是设置一些响应属性?

当有人在 ASP.NET WebForms/MVC 应用程序中使用OutputCache指令时,它实际上是否会在服务器端进行任何缓存,例如使用Cache还是仅在 Response 对象中设置一些属性,例如Cache-Control属性?

干杯:)

0 投票
2 回答
1999 浏览

asp.net - 为什么使用 ASP.NET OutputCache 不断返回 200 OK,而不是 304 Not Modified?

我有一个简单的 aspx 页面。这是它的顶部:-

现在,每次我在 FireFox 中点击页面(点击 F5 或在 url 栏中点击 enter)我都会收到 200 OK 响应。这是来自 FireBug 的示例回复:-

请求标头:-

响应标头:-

Firebug 缓存选项卡:-

现在,如果我使用请求生成器在 Fiddler 中尝试它(并且没有额外的数据),我也会不断收到相同的 200 OK 回复。

请求标头:-

响应标头:-

看起来它要求缓存它,但它不是:(

服务器是 Win7 上的 localhost IIS7.5。(如响应数据中所列)。

谁能看到我做错了什么?