在RC1的最新项目中,我注意到我有这个浏览器缓存问题,我无法动摇。这就是我的标题看起来像
HTTP/1.1 200 OK
Date: Tue, 03 Mar 2009 15:11:34 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 1.0
Cache-Control: private
Expires: Tue, 03 Mar 2009 15:11:34 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 4614
从技术上讲,如果这是私有的,那么内容上应该没有过期日期吗?我也尝试过no-cache和相同的结果。有人对这个特殊问题有经验吗?
答案 0 :(得分:3)
Cache-Control:private仅指定响应仅供单个用户使用,不应存储在共享缓存中(例如,在代理中)并用于为其他用户提供请求。我没有在协议文档中看到任何会阻止使用带有值的Expires头的内容。实际上,说“仅用于此用户的后续请求,但在此之后不会这样做”似乎是完全合理的。 Cache-Control还有其他值,其中Expires可能没有意义,但我相信该协议有一种消除冲突头之间歧义的方法(参见协议文档的第4节)。
引自HTTP 1.1 protocol文档的第16.2节:
私有
Indicates that all or part of the response message is intended for a single user and MUST NOT be cached by a shared cache. This allows an origin server to state that the specified parts of the response are intended for only one user and are not a valid response for requests by other users. A private (non-shared) cache MAY cache the response. Note: This usage of the word private only controls where the response may be cached, and cannot ensure the privacy of the message content.
答案 1 :(得分:1)
没有理由不能缓存私有内容,只是它应该只在当前用户上下文中由浏览器缓存,它不应该是缓存服务器端,也不应该是其他缓存,例如代理服务器。 / p>