cookie 和 session

发布于 2022-09-06 09:02:24 字数 88 浏览 17 评论 0

如果将保存session_id的cookie设置很长的有效期,那么服务器端的session是否也会保存很长时间?还是说必须要将session保存到缓存或数据库中?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

陌伤ぢ 2022-09-13 09:02:25

cookie 是客户端浏览器的存储一小段信息文本,用来记录客户当前的信息,状态,权限等等 ...
方便请求某些数据或者一些方法带有的一个携带权限支持的一种方法~

设置cookie某字段有效期

//下面这是设置session_id  60个月有效期
**Response.Cookies("session_id").Expires=DateAdd("m",60,now())**
穿越时光隧道 2022-09-13 09:02:24

结论

  1. 需要存储到缓存/数据库。
  2. 设置cookie有效期为T1,缓存存储时长为T2,两者没有硬性直接关联。但理论上 T1 必须 <= T2。

问题一:还是说必须要将session保存到缓存或数据库中?

答:建议存储到缓存中去,避免服务重启后会话全部失效。如果缓存服务不支持持久化,那么还需要落地到本地数据库。

问题二:如果将保存session_id的cookie设置很长的有效期,那么服务器端的session是否也会保存很长时间?

答:不会,两者没有硬性关联。
答:这里需要关注cookie的有效期T1、session的有效期T2、session的存储期T3。正常来说,T1 <= T2 <= T3。
很多时候session失效后,session对应的数据还是在数据库里待着,只是标识为失效而已。根据实际情况,可能会有定期清理数据库的动作。

水染的天色ゝ 2022-09-13 09:02:24

如果将保存session_id的cookie设置很长的有效期,那么服务器端的session是否也会保存很长时间?
答:不会,后台的session时间一般由session-timeout参数决定。客户端的任何请求都能激活session,让session再续命session-timeout这么长时间。只要续命的时间到了(即这段时间内没有同一session的后续请求过来),session就会开始死亡(session失效)。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文