2010-01-19 42 views
2

如果您查看函數​​的PHP文檔幫助,您會看到如果將cache_limiter參數設置爲private或nocache,則Expires HTTP標頭將設置爲常量日期(星期四,1981年11月19日08:52:00 GMT)。我知道這是過去避免緩存的日期,但爲什麼這個日期/時間尤其如此?這不是0日期,我的猜測是這是某種復活節彩蛋。如果過去是某種虛擬價值,我可以改變它以用於其他方面(仍然是過去),並且私有/ nocache機制仍然有效嗎?PHP session_cache_limiter()private和nocache HTTP過期日期問題

回答

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

去改變它,這將是最好手動設置標題,例如非緩存套這樣的:

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'); 

標題將替換任何現有標題(默認情況下)。

+0

確定以便過去用另一個日期覆蓋HTTP Expires值不會影響私有或nocache機制? – AlexV 2010-01-19 16:39:54

+0

它不應該影響它,不。 – 2010-01-19 16:43:01

+0

是的,因爲安東尼提到...標題由session_cache_limiter設置,當你調用它,所以你可以覆蓋...(爲什麼我不能發表評論?嗯) – jspcal 2010-01-19 16:48:37