为什么1981年"过期"?

foo*_*oty 39 php session expires-header

我的CRON Job返回了CRON作业无效的错误.在那里,这是:

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
Run Code Online (Sandbox Code Playgroud)

我想知道为什么Expires设置为"1981".有什么意义?

Mar*_*ers 86

这是一种禁用缓存的尝试.

日期是开发人员Sascha Schumann的生日,他添加了代码.

来自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);
}
Run Code Online (Sandbox Code Playgroud)

  • 祝他生日快乐!;-P (32认同)
  • @klenium:因为它不直观!它应该是一个默认日期,如:1.1.1900 等。那么你不需要这样的线程。 (3认同)
  • OMFG.我可以搜索几个小时.- 谢谢!见http://php.net/manual/de/function.session-cache-limiter.php (2认同)

Mar*_*era 7

HTTP Expires标头

http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

它被设置为负值或过去值,以防止缓存响应.

此标头的常见用法.


Ash*_*ane 5

我想你session_cache_limiter在打电话之前正在使用session_start.如果参数是private或者no-cache结果是将Expires标题设置为您提到的时间.有关更多信息,请参阅文档.