适用于不同类型资源的理想HTTP缓存控制标头

我想找到一组最小的标头集,这些标头可以与“所有”缓存和浏览器一起使用(同样在使用HTTPS时!)


在我的网站上,我将拥有三种资源:


(1)永久可缓存(公开/对所有用户均等)

示例:0A470E87CC58EE133616F402B5DDFE1C.cache.html(由GWT自动生成)


这些文件在更改内容时(基于MD5)会自动分配一个新名称。


即使使用HTTPS,也应尽可能多地对其进行缓存(因此,我认为应该设置Cache-Control: public,尤其是对于Firefox?)


如果内容已更改,它们不应要求客户端往返服务器进行验证。


(2)偶尔更改(公开/对所有用户均等)

示例:index.html,mymodule.nocache.js


部署新版本的网站时,这些文件将更改其内容而不会更改URL。


它们可以被缓存,但是可能每次都需要往返来重新验证。


(3)每个请求的个人(私人/用户特定)

示例:JSON响应


在任何情况下,都不应将这些资源未加密地缓存到磁盘中。(除非我可能会缓存一些特定的请求。)

我对每种类型可能使用的标头有一个大致的了解,但是总会缺少一些东西。


慕虎7371278
浏览 484回答 3
3回答

炎炎设计

我可能会使用以下设置:Cache-Control: max-age=31556926–表示可以被任何高速缓存所高速缓存。缓存的表示将被认为是1年的新鲜:为了将响应标记为“永不过期”,源服务器会从发送响应之日起大约一年后发送一个 Expires日期。HTTP / 1.1服务器不应发送超过一年的过期日期。Cache-Control: no-cache–任何缓存都可以缓存制图表达。但是缓存必须在释放缓存副本之前将请求提交给原始服务器以进行验证。Cache-Control: no-store –缓存在任何情况下都不得缓存表示。有关更多信息,请参见Mark Nottingham的缓存教程。
打开App,查看更多内容
随时随地看视频慕课网APP