我在a testsite上获得了以下index.php:
<?php
$r = rand(1, 1000);
$mtr=mt_rand(1, 1000);
echo "rand(1, 1000): " . $r;
echo "<br>mt_rand(1, 1000): " . $mtr;
?>
出于某种原因,我只能在页面加载时运行一次,给我两个随机数,应该是,如果我用F5重新加载页面,可能再一次。但是,在几分钟过去之前,它拒绝产生任何随机数字。
我觉得我错过了一些明显的东西。服务器由MissHosting.se托管,并运行php5.6。客户支持坚持认为这是一个代码问题。我很乐意根据要求提供任何进一步的信息。
感谢您的帮助!
答案 0 :(得分:0)
问题似乎来自于您的服务器使用某种缓存这一事实。为了排除客户端缓存(即浏览器缓存),我使用curl多次请求页面,这不会进行任何缓存。所以它是一个服务器缓存。
现在,如果我们用curl查看标题:
~$ curl http://sithu.net/testinggrounds/ -I
HTTP/1.1 200 OK
Date: Fri, 17 Feb 2017 16:09:36 GMT
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Varnish: 6817501 6109691
Age: 9
X-Cache: HIT
X-Cache-Hits: 1
Accept-Ranges: none
Connection: keep-alive
标题清楚地表明服务器进行了缓存,我们已经点击了服务器缓存(X-Cache: HIT
和X-Cache-Hits: 1
)。因此,下一步将是找出如何/在何处更改服务器缓存机制。
X-Varnish
标头表示您的服务器/托管服务商正在使用Varnish HTTP Cache进行缓存。