PHP检查浏览器缓存中是否存在url

PHP检查浏览器缓存中是否存在url,php,caching,browser-cache,Php,Caching,Browser Cache,我的web项目基于XSLT创建的XHTML页面,创建这些页面需要一些时间。另一方面,原始XML很少更改。因此,我在PHP中设置了一个带有HTTP头的浏览器缓存: header("Cache-Control: public, max-age=3600"); 在浏览器中执行“后退”和“前进”操作现在非常顺利 但还有另一种情况: 通过点击一些链接,用户可能会再次看到相同的页面。URL也完全相同。但在这种情况下,页面不是从浏览器缓存加载的,而是重新创建的。我发现了一个非常好的解决方案,可以在服务器上

我的web项目基于XSLT创建的XHTML页面,创建这些页面需要一些时间。另一方面,原始XML很少更改。因此,我在PHP中设置了一个带有HTTP头的浏览器缓存:

header("Cache-Control: public, max-age=3600"); 
在浏览器中执行“后退”和“前进”操作现在非常顺利

但还有另一种情况: 通过点击一些链接,用户可能会再次看到相同的页面。URL也完全相同。但在这种情况下,页面不是从浏览器缓存加载的,而是重新创建的。我发现了一个非常好的解决方案,可以在服务器上缓存。但是从浏览器缓存中检索文件会更快

那么,PHP中有没有一种方法可以做到这一点:

  • 检查浏览器缓存中是否存在某个URL部分(如“output.php?id_of_search=123454&action=select”)
  • 如果是:从浏览器缓存加载带有该URL的页面

提前谢谢

如果执行php脚本,浏览器已决定不使用其缓存。否则它根本不会请求您的页面,而只是从缓存中为用户服务。意思是:当时无法从php触发缓存

它不使用缓存的原因是,浏览器认为结果将是另一个页面。因此,如果您确保同一页面始终有相同的URL链接到它,缓存将正常工作

这里的一个陷阱可能是

http://example.com/somepage.php
http://example.com/somepage.php?someparam=1
http://example.com/somepage.php?someparam=2

这些URL都生成相同的响应,但浏览器认为它们不同。

谢谢!我必须在apache中更改httpconfig文件中HTTP头中的常规缓存控件。它现在可以正常工作了!