【问题标题】:Header expire doesn't work标头过期不起作用
【发布时间】:2012-05-23 15:46:14
【问题描述】:

我测试了我在this web site 上找到的这个脚本:

function setExpires($expires) {
header(
'Expires: '.gmdate('D, d M Y H:i:s', time()+$expires).'GMT');
}
setExpires(10);
echo ( 'This page will self destruct in 10 seconds<br />' );
echo ( 'The GMT is now '.gmdate('H:i:s').'<br />' );
echo ( '<a href="'.$_SERVER['PHP_SELF'].'">View Again</a><br />' );

当我刷新页面时,时间每隔 10 秒而不是 10 秒更新一次。

“如果我们点击此链接,我们会注意到时间仅每十秒更新一次”

【问题讨论】:

    标签: php caching header http-headers


    【解决方案1】:

    好的,我希望你没有犯这个错字,但无论如何我会指出来给你的:

    header('Expires: '.gmdate('D, d M Y H:i:s', time()+$expires).'GMT');
    

    seconds 字段后面应该有一个空格:

    header('Expires: '.gmdate('D, d M Y H:i:s ', time()+$expires).'GMT');
    //                                       ^-- add space here
    

    【讨论】:

    • 它仍然不起作用......但我注意到我的时间是下午 17:18,而格林威治标准时间现在显示 14:18
    • 你确定这个标头已经发送了吗?
    • 是的,标头已发送,我还添加了 Cache-Control:max-age=3600 但仍然没有缓存它
    • 实际上,当您点击刷新时,浏览器很可能会发出另一个请求......当您只需点击链接时,就会出现 expires 标头。
    • oo 是的,如果我点击 View Again 链接,它确实有效:D 哈哈,我不知道谢谢@Jack
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 2019-05-08
    • 2022-10-16
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    相关资源
    最近更新 更多