我正在通过 PHP 动态生成一个页面。我正在使用站点的输出字符串来生成一个 Etag,并在站点自上次请求以来没有更改时检查它是否发送 304(未修改)。
我现在也在尝试改进我网站上图片的缓存。每个站点上有 6 到 30 张图片(jpg,70 - 200 KB)。如果图片的内容发生了变化,我希望用户重新加载图片。我正在考虑通过向每张图片的 URL 添加一个查询字符串来做到这一点:
src="'.$files[$x].'?id='.md5_file($files[$x]).'"
这是不是太复杂了,每个请求都会产生太多的工作量,还是值得?正如我所说:我正在为每个图像生成这些 md5-hash,然后为输出字符串生成一个 md5-hash,以将其用作每个请求的 Etag。
这些是我的图像中的响应标头:
HTTP/1.1 304 Not Modified
Date: Mon, 10 Dec 2012 08:56:49 GMT
Server: Apache
Connection: keep-alive, Keep-Alive
Keep-Alive: timeout=1, max=99
ETag: "360f-4d02f5fcfc34f"
Expires: Mon, 07 Jan 2013 08:56:49 GMT
Cache-Control: max-age=2419200, must-revalidate
非常感谢你!