http标头加快图像加载?

时间:2010-06-29 08:34:49

标签: http image optimization caching http-headers

我需要在我的网站上的一个页面中加载几乎100张图像。 (产品图片,很多)。每当产品的图像更改时,该图像的网址也会发生变化。即对于一个URL,对应的iamge永远不会改变。现在我想确保对于浏览网站的同一个人,图像不能再次加载。

过期标题是否足够好? (有时浏览器仍然会在手动刷新时尝试加载它)

在服务器端,我的python脚本总是返回304,如果由于头可用而修改而不检查其值,因为每个图像都有唯一的URL。它通常很好但有时当图像被部分加载并且用户移动到另一个页面时,用户在下次登陆到服务器返回304的同一页面时会看到一半下载的图像。因此,如果标题被修改,那么可靠性如何?还有什么其他选择?

感谢。

编辑2:

304响应的内容长度应该是多少?它应该是原始内容还是实际内容(即0)??

1 个答案:

答案 0 :(得分:2)

当您手动重新加载时,大多数浏览器会忽略缓存标头,因此这是正常的和预期的行为。

Expire标头应足以达到此目的。

对于部分负载,可能会在图像加载时TCP连接中断;如果您在发送图像时未指定Content-Length,则某些浏览器可能会认为连接已关闭,因为已发送所有数据。如果指定了Content-Length(a.k.a.图像大小,以字节为单位),浏览器应注意它何时没有完整的图像,并在下次无条件地重新下载。

发送304 Not Modified时,无需发送内容长度。