标签: cache-control

如何从asp.net mvc响应中删除s-maxage头文件

默认情况下,Asp.Net MVC(至少我的设置)似乎发送带有该值的标头

Cache-Control: private, s-maxage=0
Run Code Online (Sandbox Code Playgroud)

我需要删除s-maxage = 0部分.原因是IE6似乎处理内容处置:如果此标头存在,则附件标头错误.

我观察到的最终结果是,如果用户选择打开下载的文件而不是保存它,则实际上并未保存.工作的非mvc版本和非工作的mvc版本之间的区别就是这个标题.

工作回复:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: Thu, 10 Feb 2011 19:35:47 GMT
X-AspNet-Version: 2.0.50727
Content-Disposition: attachment; filename=results.txt
Cache-Control: private
Content-Type: text/plain; charset=iso-8859-1
Content-Length: 210
Connection: Close

<<DATA>>
Run Code Online (Sandbox Code Playgroud)

非工作回复:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: Thu, 10 Feb 2011 20:24:04 GMT
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 1.0
Content-Disposition: attachment; filename=results.txt
Cache-Control: private, s-maxage=0
Content-Type: text/plain
Content-Length: 90
Connection: Close

<<DATA>>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc cache-control

6
推荐指数
0
解决办法
1160
查看次数

将C/C++变量存储在处理器缓存中而不是系统内存中

在运行Linux的Intel x86平台上,在C/C++中,如何告诉操作系统和硬件在L1/L2缓存中存储值(例如uint32),而不是在系统内存中?例如,假设出于安全性或性能原因,我不想在DRAM中存储32位密钥(32位无符号整数),而是希望仅将其存储在处理器的缓存中.我怎样才能做到这一点?我在Intel Xeon处理器上使用Fedora 16(Linux 3.1和gcc 4.6.2).

非常感谢您的帮助!

c caching cache-control

6
推荐指数
3
解决办法
8382
查看次数

我可以从firefox缓存中删除特定文件吗?

我正在开发一个ASP.net应用程序.

我必须经常更新我的CSS文件.我不想about:config在Firefox中更新文件频率设置.我想让它默认.

我使用Firefox作为理想的浏览器.如果我只是更新我的CSS文件,我必须清除Firefox的整个缓存.

我想从Firefox缓存中删除特定文件.这在Firefox中是否可行.我可以在Firefox中删除特定的cookie.我不能从Firefox缓存中删除特定文件吗?

如果不可能那么请告诉我如何以新版本应该始终检查(并且仅在修改时加载)的方式创建我的CSS文件.我不想在任何情况下更改Firefox设置.

firefox caching cache-control browser-cache

6
推荐指数
1
解决办法
1834
查看次数

如何使用Cache Control和ETag设置http标头

我想在谷歌建议的joomla网站中使用Cache Control和ETag.但不知道该怎么做.我搜索了很多,但找不到任何可怕的例子.

任何人都可以告诉我该怎么做.. ??

对于缓存控制我已经找到了这个例子,但这是完整的语法.. ?? 以及将它放在文件<head>标签中的位置index.php??

另请告诉我ETag的语法以及编写它的地方.

etag joomla caching cache-control pagespeed

6
推荐指数
1
解决办法
7413
查看次数

我可以阻止HTTPResponseCache在Cache-Control标头方面表现得像共享缓存吗?

我试图HTTPResponseCache在我的应用程序中使用内置(通过HTTPURLConnectionAPI 发出请求),但是在尝试使用包含Authorization标头来请求缓存任何响应时遇到问题.

我可以让它缓存在响应的唯一方法是明确提出"公开"在Cache-Control服务器上的响应头(s-maxage可能工作太,没试过,但明确将private导致没有缓存); 但这意味着任何中间代理都会缓存响应以服务于其他客户端,这不是我想要的.

我的理解是,用户代理缓存会Authorization默认缓存标头请求的响应或private标头.看起来HTTPResponseCache它在解释标头而不是用户代理缓存方面就像共享缓存一样.或者我对缓存标准的理解不正确?

有什么办法可以让缓存像用户代理HTTP缓存一样工作吗?

这在我的安装代码中:

public static void setupCache(Context context, long httpCacheSize){
  File httpCacheDir = new File(context.getCacheDir(),"http");
  HttpResponseCache.install(httpCacheDir, httpCacheSize);
}
Run Code Online (Sandbox Code Playgroud)

我需要在这里做些不同的事吗?或许我需要在我的请求中包含一些用户代理信息?

android caching http cache-control httpresponsecache

6
推荐指数
1
解决办法
237
查看次数

通过高效的缓存策略提供静态资源 - Nuxt.js + GAE

我从Lighthouse得到以下信息:

在此输入图像描述

如何更改Nuxt.js SSR 网站上的缓存 TTL?我找到了一些答案,但没有找到关于 Nuxt.js 的信息...

重要提示:部署在 Google App Engine 中

google-app-engine caching cache-control lighthouse nuxt.js

6
推荐指数
1
解决办法
9608
查看次数

缓存控制未返回 304

我有一个网站,其中包含不会更改的静态资产(js、图像等)。这些资源中的每一个都具有带有以下属性的缓存控制标头集:

cache-control: public, max-age=31536000, immutable
Run Code Online (Sandbox Code Playgroud)

但是,当我重新加载页面时,我仍然看到来自服务器的 200 响应,而不是 304 响应。浏览器指示正在从内存或磁盘缓存提供资源,但它仍在发出请求并下载内容。这以前是有效的,我倾向于这是一个浏览器错误,但我不完全确定。

http cache-control http-status-code-304 http-status-code-200

6
推荐指数
1
解决办法
2408
查看次数

如何禁用拦截调用的缓存?

我目前正在使用 Cypress 6.4.0,它启动我的 Angular 应用程序。这个Angular应用程序在开始时调用后端的时间同步路由。我们通过以下方式拦截此调用:

cy.wait('/api/t', { requestTimeout: 10_000 }).then((req) => {
    expect(req.response!.statusCode).to.equal(200);
    // some extra stuff...
});
Run Code Online (Sandbox Code Playgroud)

这对于第一次测试有效,但第二次测试总是失败。我检查了网络日志,似乎第二个响应来自浏览器缓存。我首先认为后端或 Angular 的缓存删除了pragmano-cache标头,但是当在没有 Cypress 的情况下运行应用程序时,标头就在那里。

我的测试中有两个测试,第二个测试失败了。或者,如果我有 1 个测试,并使用R.

那么,有没有办法禁用 Cypress 中的缓存呢?

cache-control angular cypress

6
推荐指数
1
解决办法
2066
查看次数

如何在Nestjs代码优先中设置Apollo的cacheControl指令

我正在尝试在某些字段上设置静态cacheControl,如此处所示

根据我的理解,我需要使用指令,因此我使用以下嵌套文档来声明指令

因此,我构建了一个 cacheControl 指令,这就是我的 GraphQLModule.forRootAsync 在 buildSchemaOptions 中的内容:

buildSchemaOptions: {
        directives: [
          new GraphQLDirective({
            name: 'cacheControl',
            locations: [
              DirectiveLocation.FIELD_DEFINITION,
              DirectiveLocation.OBJECT,
              DirectiveLocation.INTERFACE,
              DirectiveLocation.UNION
            ],
            args: {
              maxAge: { type: GraphQLInt },
              scope: {
                type: new GraphQLEnumType({
                  name: 'CacheControlScope',
                  values: {
                    PUBLIC: {
                      astNode: {
                        kind: 'EnumValueDefinition',
                        description: undefined,
                        name: {
                          kind: 'Name',
                          value: 'PUBLIC'
                        },
                        directives: []
                      }
                    },
                    PRIVATE: {
                      astNode: {
                        kind: 'EnumValueDefinition',
                        description: undefined,
                        name: {
                          kind: 'Name',
                          value: 'PRIVATE'
                        },
                        directives: []
                      } …
Run Code Online (Sandbox Code Playgroud)

cache-control code-first graphql apollo-server nestjs

6
推荐指数
0
解决办法
943
查看次数

缓存控制:我不明白“必须理解”

我不明白must-understandHTTPCache-Control标头的指令。有哪些示例说明何时使用此功能,以及服务器可能使用缓存可能理解或不理解的哪种状态代码?

来自 MDN 的文档

响应must-understand指令指示缓存仅在根据状态代码了解缓存要求时才应存储响应。

must-understandno-store应该与后备行为结合起来。

Cache-Control: must-understand, no-store
Run Code Online (Sandbox Code Playgroud)

如果缓存不支持must-understand,它将被忽略。如果no-store也存在,则不存储响应。

如果缓存支持must-understand,它会根据其状态代码来存储响应并了解缓存要求。

RFC 9111中也对其进行了正式描述:

必须理解的响应指令将响应的缓存限制为能够理解并符合该响应状态代码要求的缓存。

包含必须理解指令的响应还应该包含 no-store 指令。当实现“必须理解”指令的缓存收到包含该指令的响应时,如果缓存理解并实现了状态代码的缓存要求,则它应该忽略“无存储”指令。

尽管有这些描述,我仍然不知道该指令在什么情况下有用。

http cache-control

6
推荐指数
2
解决办法
162
查看次数