PHP中的缓存破坏者

时间:2013-05-02 09:14:01

标签: php url caching browser-cache

我正在尝试制作一个简单的PHP缓存,但我有一点问题:如果我这样做 header('Location: http://localhost:8080?'.time());然后我的网址将是http://localhost:8080/?1234445,但我需要的是让它像http://localhost:8080?1234445一样没有斜杠。

请帮助我,我是PHP的新手。

1 个答案:

答案 0 :(得分:3)

根据{{​​3}},

http://localhost:8080/?1234445http://localhost:8080?1234445完全相同。没什么值得担心的。

修改

BNF for URIs 该帖子的亮点:

  

解决缓存问题的URL不是可行的方法。 URL应该代表访问内容的方法,仅此而已。

     

[...]有一些敏感的标题,你会没事的。

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>

永无止境的重定向

我认为在Win7上使用EasyPHP 5.4.6(PHP 5.4.6)重现的是,负责重定向的header调用是无人看管的,因此重定向链继续进行如下:

http://localhost:8080
http://localhost:8080?1367490108
http://localhost:8080?1367490108
http://localhost:8080?1367490109
http://localhost:8080?1367490109
http://localhost:8080?1367490109
http://localhost:8080?1367490110
http://localhost:8080?1367490110
http://localhost:8080?1367490110
http://localhost:8080?1367490111
http://localhost:8080?1367490111
http://localhost:8080?1367490111
http://localhost:8080?1367490112

等等,在重定向的永不停止的尾递归中[直到Firefox闻到一只老鼠]。 [信息:上述重定向链的查询字符串中的时间或多或少是假设的。您的普通客户端+连接+服务器组合可以每秒重定向超过三次,并且Firefox在重定向循环一秒半后中止。]