【发布时间】:2022-12-12 08:44:13
【问题描述】:
Cookies 有两个属性(Max-Age 和Expires),它们似乎服务于相同的目的,即指定给定 cookie 何时过期。
根据MDN、Expires:
将 cookie 的最长生命周期指示为 HTTP 日期时间戳。有关所需的格式,请参阅日期。
还有
Max-Age:指示 cookie 过期之前的秒数。零或负数将使 cookie 立即过期。如果同时设置了 Expires 和 Max-Age,则 Max-Age 优先。
对我来说,这听起来像是完全同义的,唯一的区别是表示到期日期的格式;
Expires指定实际日期时间,Max-Age指定时间跨度。看起来
Expires实际上早于Max-Age,而Max-Age的引入时间要晚得多,但为什么呢?那是我的问题。Expires有什么缺点Max-Age望改正?什么时候应该优先选择一个?如果Max-Age唯一不同的是如何它表示到期日期,那么它的介绍似乎毫无意义,不是吗?令我惊讶的是,我实际上找不到任何相关信息,似乎我是唯一一个对此打上问号的人,我觉得这很奇怪,所以如果我遗漏了什么请告诉我。
请注意,我的问题严格来说并不是关于这两个属性之间的技术差异(已经有类似this one 的问题涵盖了这一点),我特别好奇原因以及引入
Max-Age背后的动机,当时Expires已经存在并且做了基本相同的事情。
【问题讨论】: