问题
My CRON Job returned an error that CRON job did not work. In that this was there:
Set-Cookie: PHPSESSID=2t2drultihqci4em15nbfmeb63; path=/
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
Content-type: text/html
I am wondering why is Expires
set to "1981". What is the significance?
回答1:
It's an attempt to disable caching.
The date is the birthday of the developer Sascha Schumann who added the code.
From session.c:
Authors: Sascha Schumann <sascha@schumann.cx>
Andrei Zmievski <andrei@php.net>
// ...
CACHE_LIMITER_FUNC(private)
{
ADD_HEADER("Expires: Thu, 19 Nov 1981 08:52:00 GMT");
CACHE_LIMITER(private_no_expire)(TSRMLS_C);
}
回答2:
HTTP Expires header
http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
It is set to negative or past value, to prevent caching of response.
Quite common usage of this header.
回答3:
I think you are using session_cache_limiter
before calling session_start
. If argument is private
or no-cache
the result is setting the Expires
header to the time you have mentioned. Refer to this document for more information.
回答4:
Somebody just put expires = date('-30 years')
(paraphrased) in his code to make really sure the content is set as expired and not cached.
来源:https://stackoverflow.com/questions/8194481/why-is-expires-1981