Cookie Expiration 和 Max-Age 屬性現已設有上限

自 Chrome M104 版 (2022 年 8 月) 起,Cookie 將無法再設定超過 400 天後的到期日。

Ari Chivukula
Ari Chivukula

自 Chrome M104 版 (2022 年 8 月)起,Cookie 將無法再設定超過 400 天後的到期日。

這項變更不會影響工作階段 Cookie (未明確設定 Max-AgeExpires 的到期日的 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, 2024 年 2 月 6 日 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 保留時間超過 400 天嗎?開發人員可以設定同名的全新 Cookie,在使用者再次造訪網站時延長到期時間。請注意,Cookie 可能會在到期日之前遭到刪除,原因有很多 (例如,使用者可以手動清除 Cookie,或是超過每個網域的 Cookie 限制)。

為什麼要設下這項限制?

在加入這項限制之前,Cookie 的有效期限可能會延長到數千年後。我們希望透過這項異動,在使用者期待與便利性之間取得更好的平衡。我們選擇 400 天,是因為這個時間略長於 13 個月。這樣一來,一年造訪一次的網站就能保留 Cookie。

瞭解詳情

這項異動是Cookie 標準草案的一部分,詳情請參閱 Chrome 平台狀態MozillaWebKit 都對 400 天的限制給予正面評價,但截至本文撰寫時,兩者都尚未實施。