您能描述一个示例,指示在IIS中托管的ASP.NET应用程序中的公共和私有缓存控制之间的区别。

我读了 MSDN 区别在于以下:

上市: 设置缓存控制:公开以指定响应是由客户和共享(代理)缓存可缓存的。

私人的: 默认值。设置缓存控制:私有以指定响应仅在客户端上可以缓存,而不是通过共享(代理服务器)缓存。

我不确定我是否完全了解每个选择的利弊。何时或不使用它的示例将很棒。

例如,如果我有两个托管相同应用程序的Web服务器该怎么办?我有什么要注意的是我选择私人还是公共?

有帮助吗?

解决方案

唯一的区别是,使用私有,您不允许代理缓存通过它们传播的数据。最后,所有这些都归结为您发送的页面/文件中包含的数据。

例如,您的ISP可能在您和互联网之间具有隐形代理,这是缓存网页,以减少所需的带宽量并降低成本。通过使用缓存控制:私有,您可以指定它不应缓存页面(但允许最终用户这样做)。如果您使用缓存控制:公共,您说每个人都可以缓存页面,因此代理可以保留副本。

根据经验,如果是的话 大家 可以访问(例如,此页中的徽标)缓存控制:公共可能会更好,因为缓存的人越多,所需的带宽就越少。如果它与已连接的用户相关的是(例如,此页面中的HTML包括我的用户名,因此对其他任何人都不会有用)CACHE-CONTROL:私人会更好,因为代理将是缓存数据其他用户不会要求这样做,他们也可能保留您不想将其保存在您不信任的服务器中。

而且,当然,所有不公开的东西都应该有一个私人缓存。否则,如果有访问该数据的任何人都可以访问该数据,则可以将数据存储在中间代理服务器中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top