在caching控制中私有还是公有

你可以请描述一个示例,指出在IIS中的asp.net应用程序中的Public和Private Cache-Control之间的区别。

我在MSDN阅读,区别是以下几点:

Public:设置Cache-Control:public来指定响应可由客户端和共享(代理)cachingcaching。

私有:默认值。 设置Cache-Control:private来指定响应只能在客户端caching,而不能由共享(代理服务器)cachingcaching。

我不确定我是否完全了解每一种select的利弊。 什么时候使用或不使用它的例子会很好。

例如,如果我有两个Web服务器托pipe相同的应用程序,我该怎么办? 如果我select“私人”还是“公共”,有什么需要注意的吗?

唯一的区别是,使用Private,您不允许代理caching通过它们传输的数据。 最后,这一切归结为您发送的页面/文件中包含的数据。

例如,您的ISP可能在您和Internet之间有一个隐形代理,即caching网页以减less所需的带宽量并降低成本。 通过使用caching控制:私人,你指定它不应该caching页面(但允许最终用户这样做)。 如果你使用cache-control:public,你就是说每个人都可以caching这个页面,所以代理会保留一个副本。

作为一个经验法则,如果每个人都可以访问的东西(例如,在这个页面中的标识)cache-control:public可能会更好,因为caching它的人越多,你需要的带宽就越less。 如果是与连接的用户相关的东西(例如,这个页面中的HTML包含了我的用户名,那么对其他人来说就不会有用)cache-control:private会更好,因为代理会caching数据这将不会被其他用户请求,他们也可能会保留您不希望保存在您不信任的服务器中的数据。

当然,所有不公开的应该有一个私有caching。 否则,数据可能被存储在中间的代理服务器中,任何有权访问的人都可以访问它。