引用自http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1
14.9.1 什么是可缓存的
默认情况下,如果请求方法、请求头字段和响应状态的要求表明它是可缓存的,则响应是可缓存的。第 13.4 节总结了这些可缓存性的默认值。以下 Cache-Control 响应指令允许源服务器覆盖响应的默认可缓存性:
上市
表示响应可以被任何缓存缓存,即使它通常是不可缓存的或只能在非共享缓存中缓存。(有关更多详细信息,另请参见授权,第 14.8 节。)
私人的
表示响应消息的全部或部分是针对单个用户的,并且不得由共享缓存缓存。这允许源服务器声明响应的指定部分仅针对一个用户,而不是对其他用户请求的有效响应。私有(非共享)缓存可以缓存响应。
注意:private这个词的使用只控制响应可能被缓存的地方,并不能保证消息内容的隐私。无缓存
如果 no-cache 指令未指定字段名称,则缓存不得使用响应来满足后续请求,而无需与源服务器成功重新验证。这允许源服务器阻止缓存,即使缓存已配置为向客户端请求返回陈旧响应。
如果 no-cache 指令确实指定了一个或多个字段名,那么缓存可以使用响应来满足后续请求,但受缓存的任何其他限制。但是,如果没有与源服务器成功重新验证,则不得在对后续请求的响应中发送指定的字段名。这允许源服务器防止在响应中重复使用某些标头字段,同时仍然允许缓存响应的其余部分。
注意:大多数 HTTP/1.0 缓存不会识别或遵守此指令。
14.9.2 缓存可以存储什么
无店
no-store 指令的目的是防止无意中释放或保留敏感信息(例如,在备份磁带上)。no-store 指令适用于整个消息,并且可以在响应或请求中发送。
如果在请求中发送,缓存不得存储此请求的任何部分或对它的任何响应。如果在响应中发送,缓存不得存储此响应或引发它的请求的任何部分。该指令适用于非共享和共享缓存。在这种情况下,“不得存储”意味着缓存不得有意将信息存储在非易失性存储中,并且必须尽最大努力在转发信息后尽快从易失性存储中删除信息。
即使该指令与响应相关联,用户也可能在缓存系统之外显式存储这样的响应(例如,使用“另存为”对话框)。历史缓冲区可以存储这些响应作为其正常操作的一部分。
该指令的目的是满足某些用户和服务作者的既定要求,他们担心通过对缓存数据结构的意外访问而意外释放信息。虽然在某些情况下使用该指令可能会改善隐私,但我们警告说,它绝不是确保隐私的可靠或充分机制。特别是,恶意或受损的缓存可能无法识别或遵守此指令,并且通信网络可能容易受到窃听。