Cache是​​否适用于部分加载的文件?

时间:2011-07-21 17:03:08

标签: image browser-cache preloading

这不是一个“编码问题”,而是更像是“它是如何工作的?”。

让我们考虑一下我想在第2页上展示一张厚重的照片。 如果我在第1页(没有显示)上预加载这张照片,并在它完全加载之前点击第2页链接......会发生什么?

=>页面2加载,加载pic的结尾也加载,或缓存不适用于部分加载的文件?

感谢您的解释,

CH

1 个答案:

答案 0 :(得分:0)

理论上,很可能通过Web浏览器或最终用户与Web服务器之间的代理服务器缓存响应的一部分。 http支持范围请求,其中客户端可以请求总资源的特定切片(如图像)。所有大型Web服务器都支持范围请求。

如果任何网络浏览器缓存部分下载的资源,我真的不知道,虽然这将是一个简单的测试 - 清除Web浏览器缓存,点击加载大型外部对象的网页,中途停止加载。确保Web服务器发送以下标头以及响应。

cache-control: max-age=10000
accept-ranges: bytes

现在再次发出请求,但查看请求的http标头,查找要求部分内容的浏览器,例如Range: bytes=100000-90000000。如果它部分缓存了文件,显然只会询问部分内容。

max-age标头告诉浏览器文件可以缓存一段时间,而accept-ranges标头告诉浏览器Web服务器能够为部分内容请求提供服务。