我有一个网站,上面有一些从php脚本发送的图片。 每次发送ETag并检查下一个请求。这很好。在第一页打开时,所有文件都下载200 Ok,下一页下载304 Not Modified。
但是我注意到,如果我重新打开页面但是在重新加载(F5)时,直接从http服务器发送的某些文件没有检查过修改过的事件。
If I open the page for the first time:
Files from web server: 200 Ok
Files from php script: 200 Ok
If I press F5:
Files from web server: 304 Not Modified
Files from php script: 304 Not Modified
If I reopen the page:
Files from web server: NO REQUEST
Files from php script: 304 Not Modified
我想要做的是让浏览器跳过检查我的文件是否被修改并显示缓存版本。 所以我检查了http和php脚本发送到浏览器的响应:
来自http服务器的静态内容:
Accept-Ranges bytes
Connection keep-alive
Content-Length 22033
Content-Type image/png
Date Sat, 15 Mar 2014 10:42:06 GMT
Etag "523c1617-5611"
Last-Modified Fri, 20 Sep 2013 09:32:07 GMT
Server nginx
由php脚本提供的内容:
Connection keep-alive
Content-Type image/jpeg
Date Sat, 15 Mar 2014 10:45:16 GMT
Etag c4ca4238a0b923820dcc509a6f75849b
Server nginx
Transfer-Encoding chunked
所以差异是:
Accept-Ranges, Content-Length, Last-Modified, Transfer-Encoding
但我认为唯一可以让浏览器不检查更新的是Last-Modified。因此,如果我将Last-Modified添加到我的php脚本中 - 浏览器会跳过检查更新吗?
答案 0 :(得分:0)
好的,找到了答案。
Last-Modified:
使用firefox使图像加载像随机一样。
Cache-Control: max-age=...
完全停止检查图像是否已被修改