Php 我如何知道显示的图像已缓存?

Php 我如何知道显示的图像已缓存?,php,caching,Php,Caching,我正在使用具有缓存引擎的timThumb。正如脚本/教程所说,您必须拥有一个具有0777权限的缓存文件。这就是我已经拥有的 在页面中查看图像时,请使用下面的 timthumb.php?src=http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg 它在缓存文件夹中创建一个9c9313eced007f38eb59791dad91edb1.jpg文件 我检查了图像,它和我看到的是一样的。在下一次刷新时,我查看页面源代码,然后再

我正在使用具有缓存引擎的timThumb。正如脚本/教程所说,您必须拥有一个具有0777权限的缓存文件。这就是我已经拥有的

在页面中查看图像时,请使用下面的

timthumb.php?src=http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg

它在缓存文件夹中创建一个
9c9313eced007f38eb59791dad91edb1.jpg
文件

我检查了图像,它和我看到的是一样的。在下一次刷新时,我查看页面源代码,然后再次

timtumb.php?src=http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg
而不是缓存的图像


我的问题是,是否应该显示
domain.com/9c9313eced007f38eb59791dad91edb1.jpg

这是我使用的代码(它是一个接受所有域的修改版本)


注意:我在官方版本中也试过了,但还是一样。也许这就是缓存的工作原理,我不知道。。但是如果是这样的话,我如何检查我看到的是缓存的内容呢?

您对这里的缓存概念有错误的认识

请注意,当文件位于
缓存目录中时,php会检查用户是否已向他发送头
HTTP\u IF\u MODIFIED\u,因为

如果浏览器发送此标头,则表示浏览器具有此文件的本地副本,该文件自下载时起具有
上次修改的
HTTP\u If\u Modified\u

现在,如果该日期实际上是映像的最后修改日期,服务器将发送头
HTTP/1.1 304 Not Modified

请注意检入功能
显示缓存文件


还有一件事,php似乎正在重新调整图像大小,并将重新调整大小的图像保存在自己的缓存文件夹中。因此,通过这种方式,重新调整大小的过程不再重复



我不知道是否有浏览器允许您知道显示的图像是从缓存获取还是下载的。无论如何,这是不相关的,因为用户必须确保它是最新的图像。

您对这里的缓存概念有错误的想法

请注意,当文件位于
缓存目录中时,php会检查用户是否已向他发送头
HTTP\u IF\u MODIFIED\u,因为

如果浏览器发送此标头,则表示浏览器具有此文件的本地副本,该文件自下载时起具有
上次修改的
HTTP\u If\u Modified\u

现在,如果该日期实际上是映像的最后修改日期,服务器将发送头
HTTP/1.1 304 Not Modified

请注意检入功能
显示缓存文件


还有一件事,php似乎正在重新调整图像大小,并将重新调整大小的图像保存在自己的缓存文件夹中。因此,通过这种方式,重新调整大小的过程不再重复



我不知道是否有浏览器允许您知道显示的图像是从缓存获取还是下载的。无论如何,这是不相关的,因为用户必须确保它是最新的图像。

URL
timtumb.php?src=http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg
不会改变。脚本的逻辑如下所示:


我已获得图像的URL“http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg"

磁盘上是否有未过期的缓存副本

否:从“”中检索图像http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg,将其写入缓存,然后显示

是:从磁盘读取文件并显示它


因此,即使您说图像在这里(通过查询字符串参数src=)”http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg“这并不意味着脚本实际上每次都从那里检索它

我想说的是,您的权限是正确的,缓存文件正在写入文件夹,这足以证明它正在工作


任何超出此范围的验证都是浪费时间。

URL
timtumb.php?src=http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg
不会改变。脚本的逻辑如下所示:


我已获得图像的URL“http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg"

磁盘上是否有未过期的缓存副本

否:从“”中检索图像http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg,将其写入缓存,然后显示

是:从磁盘读取文件并显示它


因此,即使您说图像在这里(通过查询字符串参数src=)”http://farm3.static.flickr.com/2340/2089504883_863fb11b0a_z.jpg“这并不意味着脚本实际上每次都从那里检索它

我想说的是,您的权限是正确的,缓存文件正在写入文件夹,这足以证明它正在工作


任何超出此范围的验证都是浪费时间。

谢谢您的回答。缓存会加速页面加载吗?因为我看不出缓存打开或关闭有什么区别。是的,当然“服务器上的负载更少,因为它不会发送所有图像”“客户端上的加载时间更快,因为它不会下载所有图像”难道没有任何可能的方法知道它是缓存还是下载的吗?使用脚本或其他东西…在服务器端:如果执行
if($if_modified_since==$gmdate_mod){header(“HTTP/1.1 304 Not modified”);exit;}
,则显示图像的缓存版本。感谢您的回答。缓存会加速页面加载吗?因为我看不出缓存打开或关闭有什么区别。是的,当然“服务器上的负载更少,因为它不会发送所有图像”“客户端上的加载时间更快,因为它不会下载所有图像”难道没有任何可能的方法知道它是缓存还是下载的吗?