欢迎各位兄弟 发布技术文章
这里的技术是共享的
s-maxage一般用在cache服务器上(比如cache CDN),并只对public缓存有效
考虑到max-age适用于所有缓存,s-maxage仅适用于共享缓存(代理和网关缓存)….
在不可接受和公开的页面中使用这两个指令是否有意义?
控制器伪码:
w = Response();
w.setPublic();
w.setMaxAge("1 year");
w.setShareMaxAge("1 year");
return w;
从 HTTP Header Field Definitions:
14.9.3 Modifications of the Basic Expiration Mechanism
…
s-maxage
If a response includes an s-maxage directive, then for a shared cache (but not for a private cache), the maximum age specified by this directive overrides the maximum age specified by either the max-age directive or the Expires header.
…
注意,“覆盖”.因此,如果您打算为共享缓存指定不同的最大年龄,则与最终用户使用的最大时间相比,这是有意义的.
在你的具体例子中,它们是一样的,所以指定s-maxage是不必要的.
来自 http://www.voidcn.com/article/p-sioeewuf-btp.html
Considering that max-age applies to all the caches, and s-maxage only applies to shared caches (proxy and gateway cache)....
Does it make sense to use both directives in a non-expirable and public page?
Controller pseudo-code:
w = Response(); w.setPublic(); w.setMaxAge("1 year"); w.setShareMaxAge("1 year"); return w;
From HTTP Header Field Definitions:
14.9.3 Modifications of the Basic Expiration Mechanism
...
s-maxage
If a response includes an s-maxage directive, then for a shared cache (but not for a private cache), the maximum age specified by this directive overrides the maximum age specified by either the max-age directive or the Expires header.
...
Note, "overrides". So, it would only make sense if you intend to specify a different maximum age for shared caches as compared to max-age, which would be used by end users.
In your particular example, they're the same, so specifying s-maxage is just unnecessary.
考虑到max-age适用于所有缓存,而s-maxage仅适用于共享缓存(代理和网关缓存)....
在不可过期和公共页面中使用这两个指令是否有意义?
考虑到max-age适用于所有缓存,而s-maxage仅适用于共享缓存(代理和网关缓存)....
在不可过期和公共页面中使用这两个指令是否有意义?
控制器伪代码:
w = Response();
w.setPublic();
w.setMaxAge("1年");
w.setShareMaxAge("1年");
返回w;
解决方案
14.9.3基本到期机制的修改
...
s-maxage
如果响应包含s-maxage指令,则对于共享缓存(但不包括私有缓存),此指令指定的最大年龄覆盖 max-age指令或Expires标题指定的最大年龄。
...
注意,"覆盖"。因此,只有当您打算为共享缓存指定不同的最大年龄时,才会有意义,而最终用户将使用 max-age 。
在您的特定示例中,它们是相同的,因此指定 s-maxage 是不必要的。