在由史蒂夫Souders的(at around 14:30)演示"Cache is King",它暗示有在实践中,只有你应该为你的资源使用两个缓存持续时间:“永远”和“从不”(我自己的术语)。“永远”和“永不”是唯一有用的缓存持续时间吗?
- “永远”意味着您通过设置非常高的最大年龄(例如一年)有效地使资源永久不变。如果您想在某些时候修改资源,演示文稿建议您只需在另一个URL上发布修改后的资源。 (建议在此重命名是必要的,部分或全部,因为大量在互联网上错误配置的代理。)
- “从不”意味着你有效地禁止一切形式的缓存,并且需要浏览器下载资源每次请求。
一方面,Google首席绩效工程师给出的任何绩效建议都会自行承担责任。另一方面,由于某种原因(不仅仅是“永远”和“从不”)将HTTP缓存设计为可变缓存持续时间,并且仅仅因为资源已被修改而将URL更改为资源似乎违背了HTTP。
有“永远”和“never”中的唯一高速缓存持续时间,你应该在实践中运用?这是否与网络上的其他最佳做法相冲突?
除了典型的“带浏览器的用户”用例外,我还想知道这些原则是如何应用于REST /超媒体API的。
我最喜欢的缓存标头是'Cache-Control:private,max-age = 0',它可以选择性地与'ETag'组合成等于资源哈希或资源版本。它在使用Ajax或RESTful API的情况下获得最佳结果。例如,请参阅[答案](http://stackoverflow.com/a/9269567/315935)。 – Oleg 2014-10-18 21:21:01