我有一个应用程序,为了将图像加载到应用程序中,我必须使用代理。因此,图像的网址不是.jpg,它们是.php?var = value即使它们已经加载一次,它们似乎加载速度要慢得多,我真的不知道它是如何工作的,但我在想代理的图像没有被缓存。我是对的吗?
感谢。
答案 0 :(得分:2)
IE(可能还有其他浏览器)不会使用任何类型的查询来缓存网址?query = string& foo = bar if there are no caching headers in the response。您必须显式设置Cache-Control和Expires标头,以便缓存它们。
在PHP中,设置标题的方法是:
// can be cached by browser, and also by intermediate caches (i.e. by everybody)
header('Cache-Control: public');
// is fresh (doesn't have to be re-checked) until that date
header('Expires: Fri, 17 Apr 2009 23:50:00 GMT');
警告:除非使用输出缓冲,否则需要在内容之前发送标题。
答案 1 :(得分:0)
您的PHP文件可能已声明无缓存标志或低到期时间。尝试在显示完整http标头的查看器中打开两个网址。
每个代理都有自己的设置如何处理缓存和不同的文件类型。 JPG通常被视为静态文件,因此可以安全地对其进行缓存。然而,PHP文件被视为动态脚本,每次都会产生不同的输出。但这完全取决于您的代理的配置。