自 Chrome 版本 M104(2022 年 8 月)起,Cookie 的失效日期不能再设为超过 400 天的未来日期。
自 Chrome 版本 M104(2022 年 8 月)起,Cookie 不再允许设置超过 400 天后的失效日期。
此更改不会影响会话 Cookie(未使用 Max-Age
或 Expires
显式设置有效期的 Cookie),因为这些 Cookie 会在浏览会话结束时被清除。
经过此次更改,Chrome 会将失效日期限制为允许的最大值:从设置 Cookie 之时起 400 天。系统不会拒绝请求超过 400 天的到期日期的 Cookie;而是将其到期日期设为 400 天。
示例
例如,假设您在 2023 年 1 月 1 日(星期日)设置了 Cookie:
Cookie | 请求的到期时间 | 未来几天 | 超过 400 天? | 实际到期日期 |
---|---|---|---|---|
Name=Value; Expires=Mon, 1 Jan 2024 00:00:00 GMT | 2024 年 1 月 1 日 | 365 | 否 | 2024 年 1 月 1 日 |
Name=Value; Max-Age=31536000 | 2024 年 1 月 1 日 | 365 | 否 | 2024 年 1 月 1 日 |
Name=Value; Expires=Mon, 5 Feb 2024 00:00:00 GMT | 2024 年 2 月 5 日 | 400 | 否 | 2024 年 2 月 5 日 |
Name=Value; Max-Age=34560000 | 2024 年 2 月 5 日 | 400 | 否 | 2024 年 2 月 5 日 |
Name=Value; Expires=Tues, 6 Feb 2024 00:00:00 GMT | 2024 年 2 月 6 日 | 401 | 是 | 2024 年 2 月 5 日 |
Name=Value; Max-Age=34646400 | 2024 年 2 月 6 日 | 401 | 是 | 2024 年 2 月 5 日 |
Name=Value; Expires=Wed, 1 Jan 2025 00:00:00 GMT | 2025 年 1 月 1 日 | 731 | 是 | 2024 年 2 月 5 日 |
Name=Value; Max-Age=63158400 | 2025 年 1 月 1 日 | 731 | 是 | 2024 年 2 月 5 日 |
延长 Cookie 有效期
想要将 Cookie 的有效期延长到 400 天以上?每当用户再次访问网站时,开发者都可以通过设置同名的新 Cookie 来延长失效时间。请注意,由于多种原因(例如,用户可以手动清除其 Cookie,或者超出每个网域的 Cookie 数上限),Cookie 可能会在到期之前被删除。
为什么添加此限制?
在添加此限制之前,Cookie 的失效时间可以设为数千年后。通过这项变更,我们希望在用户期望和便利性之间取得更好的平衡。之所以选择 400 天,是因为它比 13 个月稍长一些。这样一来,用户大约每年访问一次的网站就可以保留其 Cookie。
了解详情
这项变更是Cookie 标准草案的一部分,如需了解详情,请访问 Chrome 平台状态。Mozilla 和 WebKit 对 400 天限制给出了积极反馈,但截至本文撰写时,这两者都尚未实施该限制。