http – 私人vs公共在缓存控制

你能描述一个例子,表明在IIS中托管的asp.net应用程序中的公共和专用高速缓存控制之间的区别。

我在MSDN读到的区别是以下:

上市:
设置Cache-Control:public以指定响应可由客户端和共享(代理)高速缓存高速缓存。

私人:默认值。设置Cache-Control:private以指定响应只能在客户端上缓存,而不能由共享(代理服务器)缓存进行缓存。

我不知道我是否完全理解每个选择的利弊。一个例子,什么时候或不使用它将是巨大的。

例如,如果我有两个Web服务器托管相同的应用程序,我该怎么办?如果我选择“私人”或“公开”,有什么需要注意的吗?

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

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

作为一个经验法则,如果它是每个人都可以访问的东西(例如,这个页面中的标志)cache-control:public可能更好,因为更多的人缓存它,你需要更少的带宽。如果它是与连接的用户相关的东西(例如,这个页面中的HTML包括我的用户名,所以它对任何人都没有用)cache-control:private会更好,因为代理将缓存数据不会被其他用户请求,并且他们也可能保留您不想保存在您不信任的服务器中的数据。

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

http://stackoverflow.com/questions/3492319/private-vs-public-in-cache-control

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:http – 私人vs公共在缓存控制