源站同时吐max-age和s-maxage,最终以哪个为准?...首先在控制台将缓存策略改成遵循源站,然后在源站服务器给txt后缀的文件设置Cache-Control:max-age=60,s-maxage=30 image.png 如下图,确认源站服务器设置了Cache-Control...:max-age=60,s-maxage=30 image.png 如下图,测试验证两次请求时间间隔是30秒,所以s-maxage优先级较高,缓存时间以s-maxage为准 image.png
2、s-maxage(单位为s)同max-age,只用于共享缓存(比如CDN缓存)。 比如,当s-maxage=60时,在这60秒中,即使更新了CDN的内容,浏览器也不会进行请求。...也就是说max-age用于普通缓存,而s-maxage用于代理缓存。如果存在s-maxage,则会覆盖掉max-age和Expires header。
s-maxage=(seconds):同max-age,只用于共享缓存(比如CDN缓存) 比如,当s-maxage=60时,在这60秒钟,即使更新了CDN的内容,浏览器也不会进行请求。...也就是说max-age用与普通缓存,而s-maxage用于代理缓存,如果存在s-maxage,则会覆盖掉max-age和Expiresheader。...Cache-Control 的值为 no-cache;否则考虑该资源是否可以被代理服务器缓存,根据其结果决定是设置为 private 还是public;然后考虑该资源的过期时间,设置对应的 max-age 和s-maxage
s-maxage:功能与 max-age 相同,但只适用于供多位用户使用的公共缓存服务器;当使用 s-maxage指令后,直接忽略 Expires 和 max-age must-revalidate:代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效
no-store:所有内容都不会被缓存,即不使用强制缓存,也不使用协商缓存 max-age:max-age=xxx (xxx is numeric)表示缓存内容将在xxx秒后失效 s-maxage(单位为...比如当s-maxage=60时,在这60秒中,即使更新了CDN的内容,浏览器也不会进行请求。max-age用于普通缓存,而s-maxage用于代理缓存。s-maxage的优先级高于max-age。...如果存在s-maxage,则会覆盖掉max-age和Expires header ?
如果 Cache-Control: s-maxage 出现时,文件按设定时间缓存,多个响应头存在时,按 s-maxage > max-age > Expires 优先级决定缓存时间。
如果Cache-Control: s-maxage出现时,文件按设定时间缓存,多个响应头存在时,按s-maxage>max-age>Expires优先级决定缓存时间。
s-maxage:这和max-age长得比较像,但是区别在于s-maxage是针对代理服务器的缓存时间。
params.id[0] === 'create') { res.setHeader('cache-control', 'public, max-age=0, must-revalidate, s-maxage...: params.id[0], }) res.setHeader('cache-control', 'public, max-age=0, must-revalidate, s-maxage
self.send_header('Refresh', '0;url={}'.format(url)) self.send_header('Cache-Control', 'max-age=0, s-maxage...self.send_header('Access-Control-Allow-Origin', '*') self.send_header('Cache-Control', 'max-age=0, s-maxage
Cache-control Cache-control是控制缓存策略的http header,这里面有:max-age,s-maxage, private,public,no-cache,no-store...s-maxage s-maxage 和 max-age类似,都是在指定的时间之内不会向服务端发起资源请求,但是有一点不同,s-maxage 指向的是共享缓存,例如:cdn ,即设置了 s-maxage之后...并且当一个 cacha-control中同时设置了maxage 和 s-maxage 之后,s-maxage 会覆盖掉 maxage 和 Expires 。...指的是私人缓存,即只能由用户自己去访问的缓存,而 public指的是共享缓存是多个浏览器都可以去访问的,如果没有指定 private 或者 public 则都默认为 public ,另外需要注意的是,s-maxage
s-maxage(单位为s)同max-age,只用于共享缓存(比如CDN缓存)。 比如,当s-maxage=60时,在这60秒中,即使更新了CDN的内容,浏览器也不会进行请求。...也就是说max-age用于普通缓存,而s-maxage用于代理缓存。如果存在s-maxage,则会覆盖掉max-age和Expires header。
如下所示: # in vcl_fetch if (beresp.http.Surrogate-Control ~ "max-age" || beresp.http.Cache-Control ~ "(s-maxage...TTL: # in vcl_fetch if (beresp.http.Surrogate-Control ~ "max-age" || beresp.http.Cache-Control ~ "(s-maxage...这样做只需按以下步骤: # in vcl_fetch if (beresp.http.Surrogate-Control ~ "max-age" || beresp.http.Cache-Control ~ "(s-maxage
2.s-maxage,这个属性和max-age类似,只不过max-age应用于普通缓存,s-maxage应用于共享缓存(比如cdn缓存)。...s-maxage存在是会覆盖掉max-age和Expires 3.public应用于公共缓存,如果没有指定public还是private,则默认为public。
如果这个资源只想浏览器里缓存,不想代理服务器上缓存,那就设置 private,否则设置 public: 比如这样设置就是资源可以在代理服务器缓存,缓存时间一年(代理服务器的 max-age 用 s-maxage...设置),浏览器里缓存时间 10 分钟: Cache-control:public, max-age=600,s-maxage:31536000 这样设置就是只有浏览器可以缓存: Cache-control...除了 max-age 的指令外,我们还学了这些指令: public:允许代理服务器缓存资源 s-maxage:代理服务器的资源过期时间 private:不允许代理服务器缓存资源,只有浏览器可以缓存 immutable
表示只接受是被缓存的内容 2、用在response中控制cache的头 Cache-Control: max-age=3600,用相对于接收到的时间开始可缓存多久 Cache-Control: s-maxage...=3600,与上面类似,只是s-maxage一般用在cache服务器上,并只对public缓存有效 Expires: Fri, 05 Jul 2002, 05:00:00 GMT基于GMT的时间,绝对时间
no-store:所有内容都不会被缓存,即不使用强制缓存,也不使用协商缓存 max-age:max-age=xxx (xxx is numeric)表示缓存内容将在xxx秒后失效 s-maxage(单位为...比如当s-maxage=60时,在这60秒中,即使更新了CDN的内容,浏览器也不会进行请求。max-age用于普通缓存,而s-maxage用于代理缓存。s-maxage的优先级高于max-age。...如果存在s-maxage,则会覆盖掉max-age和Expires header。 max-stale:能容忍的最大过期时间。max-stale指令标示了客户端愿意接收一个已经过期了的响应。
常用的指令有:max-age、s-maxage、public/private、no-cache/no store 等。...s-maxage 指令与max-age的区别在于,s-maxage只适用于公共缓存服务器,例如请求资源从源服务器发出后又被中间的代理服务器接收缓存。...图片 注意:使用 s-maxage 指令后,代理服务器将忽略 Expires 和 max-age 指令的值。...因此,设置了 private 指令后 s-maxage 指令将被忽略。...如果响应报头中没有 max-age(s-maxage) 和 expires 这两个关键的字段值时,浏览器还会进行强缓存吗?
正例:http1.1 中,s-maxage 告诉服务器进行缓存,时间单位为秒,用法如下, response.setHeader("Cache-Control", "s-maxage=" + cacheSeconds
领取专属 10元无门槛券
手把手带您无忧上云