【发布时间】:2011-10-14 08:48:11
【问题描述】:
我正在开发一个提供大量地图图块的虚拟地球网络应用程序,并且我正在尝试调整我的服务器发送的 http 标头以指示浏览器 (Firefox) 缓存这些图块的到期时间。我这样做的方式是通过 Cache-Control 标头和 max-age 参数。
经过几次测试,我意识到缓存对于低于 1799 秒(大约 30 分钟)的值不起作用。使用firebug net panel进行一些调试,我发现客户端和服务器时钟之间存在30分钟的不同步。例如,如果服务器发送此标头指示 3600 秒的过期时间:
Date Fri, 14 Oct 2011 07:46:12 GMT
Server Apache/2.2.13 (Fedora)
X-Powered-By PHP/5.2.11
Connection close
Cache-Control max-age=3600
Content-Length 47864
Content-Type image/jpeg
我浏览了这个请求的缓存内容,我得到了这个。
Last Modified Fri Oct 14 2011 09:16:16 GMT+0100 (Hora de verano GMT)
Last Fetched Fri Oct 14 2011 09:16:16 GMT+0100 (Hora de verano GMT)
Expires Fri Oct 14 2011 09:46:11 GMT+0100 (Hora de verano GMT)
请注意,客户端时间为 GMT+1,服务器时间为 GMT,因此实际偏差约为 30 分钟。
所以,我得出的结论是,Firefox 是根据服务器日期标头计算过期时间,而不是客户端的响应到达日期,对吗?如果是这样,这是一个大问题,因为如果我将过期时间设置为 1 小时,中国的用户永远不会缓存,我该如何解决这个问题?提前致谢。
【问题讨论】:
标签: http firefox caching browser cache-control