问题标签 [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.
java - 在 JSP 中添加 Expires 或 Cache-Control 标头
如何在 JSP 中添加一个Expires
或标题?Cache-Control
我想在包含页面中为我的静态组件(例如图像、CSS 和 JavaScript 文件)添加一个遥远的到期日期。
ruby-on-rails - Ruby on Rails:如果是 AJAX 请求,如何将内容过期设置为 15 分钟
以下是检测 AJAX 请求并将过期设置为 15 分钟以便相同的 GET 不需要任何网络流量的好方法吗?
更新: 我找到了一个更短的替代方案,即expires_in
虽然,在那之后,标题变成:
曾经是
当它是早期版本时。但请注意,这Cache-Control
是针对 HTTP/1.1 的,甚至在几年前,它已被 99% 的浏览器支持,正如《高性能网站》一书中所述。
spring - 开箱即用的缓存控制标头过滤器?
是否有框缓存控制响应标头过滤器的权利,使我能够在我的静态资源上设置这些缓存标头而无需构建自己的过滤器?这似乎是一个常见的任务。有弹簧过滤器吗?我目前正在使用 Tomcat 6.0 并使用 Spring 的 ShallowEtagHeaderFilter 将 etag 设置为我的资源,但我还需要添加缓存控制标头。
http-headers - 缓存控制在 10 年后到期,使用 doc.css?v=128 是否与 doc_v128.css 完全相同?
使用Cache-Control
and Expires
header 以使页面不会在 10 年内过期:
使用第 1 行的结果是否与第 2 行相同?
我在想也许某些浏览器会将其?v=128
视为更具动态性的内容并在 10 年到期之前重新加载它?
否则,这两个文件都将在 10 年内到期,并且当 CSS 发生更改时,128
可以将其更新为 129 并且它会被加载并具有全新的 10 年到期日期?
(同样适用于 javascript.js
文件)
ruby-on-rails - Will caching work if one of the web servers has a clock that is slightly off?
It is said that the web servers' clocks must be identical for the Expires
and Cache-Control
headers to work? Why is that? Can't they be off by 1 second or a few minutes?
If the cache is supposed to be good for 1 year, then won't a time difference of a few minutes or even a few hours not matter on one or some of the web servers?
In the documentation it is said that:
note that in order for this [caching] to work, all your application servers must return the same timestamps. This means that they must have their clocks synchronized. If one of them drifts out of sync, you‘ll see different timestamps at random and the cache won‘t work. In that case the browser will request the same assets over and over again even thought they didn‘t change. You can use something like Live HTTP Headers for Firefox to verify that the cache is indeed working.
http-headers - 拥有 HTTP 标头“Cache-Control:public”的风险是什么?
HTTP / Cache-Control
1.1 header可以指定max-age以及缓存内容是public还是private,表示中间缓存是否可以缓存内容。
例如,Ruby on Railsexpires_in()
默认使用Cache-Control: private
公开有什么风险?如果它是公开的,哪些额外的地方可以缓存内容——例如,它是代理服务器吗?
如果网站像 Amazon.com,但用户是匿名的,那么可能没有太大的隐私问题?如果用户登录了,会不会有隐私问题,因为数据会通过地方并且数据是可见的。如果那个位置想要“坏”,它真的不需要关心Cache-Control: private
。
如果它是一个用户可以登录的网站,但该网站只搜索鱼油和维生素等保健品怎么办?在这种情况下,涉及的隐私就更少了,因为它不像 Amazon.com 有更多种类的产品,例如用户可以真正关心隐私问题的书籍。
话虽如此, have 的额外优势是Cache-Control: public
什么?
http - 缓存控制中的私有与公共
您能否描述一个示例,说明 IIS 中托管的 asp.net 应用程序中公共和私有缓存控制之间的区别。
我在MSDN中读到,区别如下:
Public: 设置 Cache-Control: public 以指定响应可被客户端和共享(代理)缓存缓存。
私人:默认值。设置 Cache-Control: private 以指定响应只能在客户端缓存,而不是共享(代理服务器)缓存。
我不确定我是否完全了解每种选择的利弊。何时使用或不使用它的示例会很棒。
例如,如果我有两个 Web 服务器托管相同的应用程序,我应该怎么做?如果我选择 Private 或 Public,有什么需要注意的吗?
safari - 为什么 Safari 不遵守我的缓存控制指令?
我希望浏览器始终加载一个特定页面,特别是当用户按下浏览器后退按钮进入该页面时。
因此,我在此页面的标题中使用了以下“Cache-Control”指令(直接从我的代码中获取 PHP)。
这适用于 FF、IE 和 Chrome,但 Safari (5.0.1) 似乎忽略了该指令并且无法重新加载页面(跨多个用户,因此它似乎不是特定于设置的问题)。搜索没有发现任何已知的错误,所以我假设我的结果有问题。
任何指针将不胜感激。
更新:刚刚在 SO 上找到了这个答案。
还没有尝试过,但看起来很有希望。很奇怪,它是对身体标签的补充,所以我持怀疑态度。
php - 无法覆盖 PHP 中的 Cache-Control
我已将旧站点移至新服务器,客户端发现了一个非常奇怪的行为。
非常接近尾声,我有这段代码:
现在奇怪的是 Cache-Control 行不起作用。数据包嗅探后,我看到:
标题的顺序正是我设置它们的方式,但 Cache-Control 完全不同。我已经对我的代码进行了任何提及缓存控制的操作,并且仅提及,另一个旨在强制缓存在不同文件中的代码,但它与我所看到的内容不同,因此它不能成为罪魁祸首。
有谁知道为什么 Cache-Control 正在改变?
firefox - 克服 Firefox 上页面的不可缓存性
我正在尝试构建 Firefox 的扩展以从 Web 服务器获取页面并将其放入浏览器的缓存中,这样当用户请求该链接时,它将直接从缓存中检索,而不是要求原始网络服务器。
但是我遇到了一些放置标题以避免可缓存性的页面,例如“Cache-control:must-revalidate”,“Cache-control:no-store”,“Cache-control:no-cache”和“Pragma” :无缓存”。
当页面到达时,我试图用 nsIHttpChannel 的 setResponseHeader 覆盖这些标题。但是相应的缓存条目中的标头不会更改。然后我尝试使用 nsICacheEntryDescriptor 的 setMetaDataElement 来更改元数据键“响应头”。尽管数据已更改,但仍从原始 Web 服务器检索页面。
有谁知道如何克服这个问题并使页面从 Firefox 的缓存中加载?这可能吗?
提前致谢。