PHP session_cache_limiter()private和nocache HTTP Expires date question

时间:2010-01-19 16:23:19

标签: php http http-headers

如果查看函数session_cache_limiter()的PHP doc帮助,您将看到如果cache_limiter参数设置为private或nocache,则将Expires HTTP标头设置为const日期(Thu,1981年11月19日08 :格林尼治标准时间52:00)。我知道这是过去的一个日期,以避免缓存,但为什么这个日期/时间特别?这不是0日期,我的猜测是这是某种复活节彩蛋。如果它在过去是某种虚拟值,我可以将其更改为其他内容(仍然在过去)并仍然使私有/ nocache机制仍然有效吗?

1 个答案:

答案 0 :(得分:5)

这是贡献代码的人的生日:

差异:http://cvs.php.net/viewvc.cgi/php-src/ext/session/session.c?r1=1.80&r2=1.81

http://www.phpbuilder.com/lists/php3-list/199911/3159.php

要更改它,最好手动设置标头,例如nocache设置它:

Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

但你仍然可以这样做:

session_cache_limiter('nocache')
header('Expires: Thu, 1 Jan 2000 00:00:00 GMT');

标头将替换任何具有相同名称的现有标头(默认情况下)。