我很想了解我注意到的一些奇怪的浏览器行为。我有一些页面(为了实验)我提供了我认为应该导致页面被缓存的标题:
Cache-Control:max-age=3600
Content-Length:66
Content-Type:text/html
Date:Thu, 06 Dec 2012 13:08:01 GMT
Expires:Fri, 07 Dec 2012 14:19:41 GMT
Server:Apache-Coyote/1.1
正如预期的那样,当我通过其他页面之一上的链接导航到其中一个页面时,浏览器会直接从其缓存中提供该页面,并且不会调用服务器。但是,当我通过按浏览器刷新按钮重新加载这些页面之一时,与缓存相关的标头似乎被忽略了,并且请求被发送到服务器。
我在最新版本的 Chrome 和 Firefox 以及 IE9 中看到了这种行为。
HTTP标准是否要求对用户刷新发起的请求进行这种“特殊处理”(如果是的话,谷歌浏览器中“硬重新加载(Ctrl+Shitf+F5)”的目的是什么),还是有其他解释?