13

我写了一篇关于网络访问者跟踪的学士论文,因此 HTTP Cookies 是其中的重要组成部分。关于最长过期时间,最长年龄,......是否有“自然”限制?我读到 expire-number 是一个 unix-timestamp(32 位),所以它应该可以工作到 2038 年。另一方面,现代浏览器应该使用 64 位数字来存储它。

我试图设置一个极高的值(Chromium/Linux)。

Warning: Expiry date cannot have a year greater then 9999 in [...]

但是其他浏览器倾向于实现不同的范围 - 有没有 W3C 建议?

最常见的平均过期时间是多少?你知道研究或论文吗?我找不到一些,但这是一个如此受欢迎的话题......

4

1 回答 1

11

RFC 6265 定义了 Cookie,所以如果我们查看第 5.2.1 节,我们会看到:

如果到期时间晚于用户代理可以表示的最后日期,则用户代理可以将到期时间替换为最后可表示的日期。

日期不是作为 unix 时间戳发送的,而是作为第 5.1.1 节中定义的表示形式发送的,它只指定了一个下限:1601 年。

因此,这将到期日期的上限留给了浏览器。大多数浏览器将使用其操作系统的底层日期实用程序(或分别为 glibc),因此它们的约束将适用(现在应该主要支持 64 位)。要获得明确的答案,您可能必须检查各种浏览器实现。

于 2012-04-14T12:34:16.867 回答