假设服务器会在请求响应中更新 set cookie 。假设服务器 set cookie 的顺序很重要。

如果多个请求,服务器(内部会串行化),所以设置的 Cookie 有新旧之分。新 Set 的 Cookie 可以覆盖旧 Cookie ,但绝对不允许旧 Cookie 覆盖新 Cookie 。

但是如果不是串行化发出请求,那么即使先发出 A ,也无法保证 A 的响应(更新 cookie )发生在 B 响应之前。就是说服务器设置的新 Cookie 可能被旧的响应覆盖。

一般怎么解决这个问题呢?

  • 完全串行化访问?
  • 携带版本信息?
  • 时间戳?

不知道有没有比较 Best Practice 的做法。如果 HttpOnly ,那么 web 端似乎手段更加有限?

举报· 328 次点击
登录 注册 站外分享
2 条回复  
yinmin 小成 2024-12-13 17:35:50
如果 httponly 是无解的。解决方式是从客户端 cookie 存储数据转换成服务器 redis 存储数据。 set cookie 发一份唯一不变的 id ,然后服务器 redis 基于唯一 id 存具体信息。
wysnxzm 小成 2024-12-13 17:37:21
zset
返回顶部