Cookie过期是特定于浏览器还是特定于服务器?

时间:2015-07-13 20:05:53

标签: php cookies setcookie

我正在设置一个带有到期时间的cookie

mktime(24,0,0).

我的问题很简单。如果浏览器时区不同,cookie会跟随服务器的时区到期还是浏览器的时区?

3 个答案:

答案 0 :(得分:1)

Set-Cookie标头将时区信息作为过期日期时间的一部分,因此用户代理知道它何时到期。

Set-Cookie: sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT

来自setcookie

的php文档
  

<强>到期

     

...

     

注意:您可能会注意到expire参数采用Unix时间戳,   而不是日期格式Wdy,DD-Mon-YYYY HH:MM:SS GMT,这是   因为PHP在内部进行了这种转换。

答案 1 :(得分:1)

来自PHP manual mktime 功能:

  

返回与给定参数对应的Unix时间戳。这个   timestamp是一个长整数,包含秒数   Unix Epoch(1970年1月1日00:00:00 GMT)和指定的时间。

它包含许多秒,一定的时间:没有必要关心时区。

答案 2 :(得分:0)

mktime(24,0,0)

根据您正在运行的timezone()服务器计算机计算第二天00:00:00的unix时间戳,并返回整数时间戳。

现在,当你通过了 setcookie(Visit, date("F jS - g:i a"), mktime(24,0,0)); 在浏览器上,它将此“自纪元以来的时间戳”转换为本地时区,并设置cookie的到期时间。

你应该知道我们在这里仍然根据服务器端的时间框架控制cookie的生命周期。