http - 浏览器如何在服务器端和客户端正确计算具有不同时区的 cookie 的到期日期时间

标签 http cookies timezone expired-sessions

服务器和客户端在不同的时区。相差6小时。服务器设置一个 cookie 1 小时,但客户端正确接收并保留一个小时,尽管客户端当前是 5 小时前。客户端如何在整点正确设置 cookie?浏览器可能会查看标题“日期”吗?如果是这样,如果服务器将在另一个代理服务器后面,它将设置自己的“日期” header 怎么办?

必须提供对 rfc 或其他内容的引用的证明。

最佳答案

有两种方法可以指定 cookie 的最长期限:

Max-Age是相对于setting的时间..所以Texpiration = Tsetting + Max-Age

否则,Expires 属性会设置一个包含时区的日期/时间值: https://www.rfc-editor.org/rfc/rfc6265#section-5.1.1

来自 RFC 本身的示例:

Expires=Wed, 09 Jun 2021 10:18:14 GMT

有许多标准(旧的和新的)支持 GMT (UTC) 作为日期/时间格式:

来自 RFC2616我们得到了所谓的 HTTP 格式:

All HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT), without exception. For the purposes of HTTP, GMT is exactly equal to UTC (Coordinated Universal Time).

Expires 属性还应该设置 time in HTTP format :

例如设置 Cookie:reg_fb_gate=deleted;过期=星期四,1970 年 1 月 1 日 00:00:01 GMT;路径=/;域名=.example.com; HttpOnly (来自Wikipedia)

关于http - 浏览器如何在服务器端和客户端正确计算具有不同时区的 cookie 的到期日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35729242/

相关文章:

javascript - 是否可以从 KISSmetrics 读取属性?

azure - Azure 中依赖英国夏令时的应用程序出现问题

http - 使用 CURL GET 发送数据

java - Spring集成中的Session存储以及处理多个http出站网关

ios - 我仅在 iPhone 中得到延迟的 Ionic native http 响应

添加构造函数时,Angular Component 不呈现 html

symfony - Guzzle php http 客户端 cookies 设置

asp.net - 为什么我在共享主机上不断收到 HTTP 403 错误?

JavaScript 时区对于过去的夏令时转换规则是错误的

c# - 获取距现在 N 小时后本地时间的时间,考虑夏令时的变化