- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 SPA,它使用来自后端服务器的一些静态 Assets 。由于某些原因,我选择了 ETag
验证作为缓存机制。简而言之,只要相关的 ETag
保持不变,我希望浏览器将 Assets 永远保存在其缓存中。
要向浏览器发出有关缓存的信号,标题 Cache-Control
必须出现在响应中。对我来说,这绝对是可以理解的,但让我感到困惑的是,我还必须在 header 中提供 max-age
。换句话说,Cache-Control=public
不起作用,而 Cache-Control=public, max-age=100
是正确的 header 。
对我来说这听起来很矛盾。浏览器使用 If-Not-Match={ETag}
任何时间询问服务器以查看 Assets 是否已更改。那么这里的max-age
有什么作用呢?
最佳答案
无论如何每次都会请求浏览器中带有 ETag 缓存的资源/文件。如果这是在服务器上更改的 *.js
文件,则服务器将发送带有新 ETag 的新版本,浏览器将刷新其缓存版本。但无论如何执行请求和响应的完整网络往返,这是非常昂贵的。如果您确实希望某些文件真的可以随时更改,那么您必须使用 ETag。
Cache-Control
是一个指示浏览器在 max-age
指定的一段时间内甚至不尝试检索更新版本的指令。这是更高效的。这对于可能不会更改的静态 Assets 很有用,例如jquery-3.1.js
文件将始终相同。或者即使资源被改变也没什么大不了的,例如style.css
.
在开发期间,当 Assets 经常更改时,Cache-Control
通常被禁用。
但是请注意 public
修饰符:这意味着资源可能会缓存在代理服务器(如 CloudFlare)上并在不同用户之间共享。如果资源有私有(private)信息,例如消息,然后用户可以看到彼此的数据。
关于google-chrome - 在 HTTP 请求中缓存 : ETag vs max-age,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62534402/
我正在使用源代码中的Postgres 13(Rel_13_STRATE分支),并且我使用的是来自apachea/age源代码的(Release/PG13/1.3.0分支)中的1.3.0版的Apache
这是我正在使用的代码: 我想回显 $age 变量的值,但我总是得到“age”这个词。例如,代码应该回显 yourage: 5,但它会输出 yourage:age 最佳答案 首先,您需要运行 SELE
对于这门课, class Person { int age; public Person(int age) { this.age = age; } } 在我的课
我没用过 HTTP 缓存 . 我在 Symfony documentation page 上找到了这些缓存选项. 我只是想知道 expires 和有什么区别, max-age , 和 s-maxage
我正在参加关于 SQL 的 Cousera 类(class),但有一行代码我无法理解。 'hex(name || age)' 是什么意思?我知道它使用 hex() 函数将字符串转换为十六进制格式,但是
两个 header Cache-control: max-age=0 和 Cache-control: max-age=-1 之间的浏览器行为有何不同? 如果浏览器收到 max-age=0,它会立即重
请参阅这个最小示例: 标记 changePeople1Works changePeopleNotWorking {{$store.sta
RFC 2616 Sec 13.2.3给出如下年龄计算算法: apparent_age = max(0, response_time - date_value); corrected_received
像这样,我有一个对象: { 'person': { 'like': { 'color': 'red', 'food': 'rice' }, 'nam
类似这个问题: get CSS rule's percentage value in jQuery 但是,我正在编写一个插件,它需要根据最初指定宽度的方式优雅地处理它。如果元素最初是以像素为单位指定的
我必须使用子查询显示下表中的 Mothers_name、AGE 和平均年龄? 我试过了 SELECT Mothers_name, Age, AVG(Age) FROM
这个问题在这里已经有了答案: What is the purpose of the `self` parameter? Why is it needed? (26 个答案) 关闭 3 个月前。 我最
这里有一个问题要问“Matlab 中记录较少的部分的专家”:是否有一种(未记录的?)方法来确定图形已打开多长时间(即图形的“年龄”)? figure; spy; myfig=gcf; age=get_
有人可以澄清一下有关缓存的说法吗? https://developers.google.com/speed/docs/best-practices/caching说 It is redundant t
这个问题在这里已经有了答案: How to get an age from a D.O.B field in MySQL? (15 个答案) 关闭 7 年前。 我想进行选择查询以搜索最小和最大年龄之
我正在实现一个项目,在该项目中,我必须找到笼子中老鼠的最小值 和 k 年龄。 我使用的代码是: var earTags = ""; var miceAge = "";
我正在编写一个小程序,显示三位教授并打印其中一位最年长和最年轻的教授。我认为我的 if 语句是正确的,但它为两个语句打印出相同的名称。 public class app { /**
我在 PostgreSQL 9.6 转折日期计算中遇到了我的 SQL 代码的一些意外行为。在分析时,我发现 Postgres 不会总是返回相同的值返回 n 天,然后用 age() 计算持续时间。 考虑
我一直在寻找一种像 agerecord 列表一样工作的数据结构。如果没有比你更年轻的人得分更高,你就有了一个年龄记录。 所以我想要一个对 (a,b) 的列表,其中对于所有对 (a1,b1) 和 (
题目地址:https://leetcode.com/problems/friends-of-appropriate-ages/description/ 题目描述: Some people will
我是一名优秀的程序员,十分优秀!