Magento 1.9网站部分Cookie过期时间固定为1969的原因及类型咨询
嘿,针对你在维护Magento 1.9网站时遇到的部分Cookie过期时间固定为1969年的问题,我来给你详细拆解:
一、过期时间显示1969年的原因
这个时间其实和Unix纪元时间(1970年1月1日00:00:00 UTC)直接相关。当Cookie的过期时间被设置为0或者负数时,浏览器会将其识别为「会话结束即过期」的规则。但由于时区差异(比如你所在时区比UTC晚8小时),1970年1月1日的UTC时间转换为本地时间就会变成1969年12月31日,所以浏览器开发者工具里就会显示成1969年的过期时间。
在Magento 1.9中,这种情况大多是默认行为:系统的核心会话Cookie(比如前端的frontend系列Cookie、后台的adminhtml Cookie)默认被设置为会话型,不会指定未来的过期时间,而是用0来标记「随浏览器会话关闭而失效」。如果是自定义模块生成的Cookie出现这个问题,那大概率是代码里错误地将过期时间参数设为了0或者负数。
二、这些Cookie的类型判断
毫无疑问,它们是会话型Cookie(Session Cookie):
- 持久型Cookie会明确设置一个未来的过期时间(比如1个月后),浏览器会在该时间到来时自动清除它;
- 而会话型Cookie没有固定的过期时间,仅在浏览器会话持续期间有效,一旦关闭浏览器,这些Cookie就会被自动删除。开发者工具里显示的1969年过期时间,就是浏览器用来标识这类会话型Cookie的特殊方式。
内容的提问来源于stack exchange,提问作者Alfredo Lanzetta
相关产品推荐
相关产品推荐

