cookie 和 session
如果将保存session_id的cookie设置很长的有效期,那么服务器端的session是否也会保存很长时间?还是说必须要将session保存到缓存或数据库中?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果将保存session_id的cookie设置很长的有效期,那么服务器端的session是否也会保存很长时间?还是说必须要将session保存到缓存或数据库中?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
cookie 是客户端浏览器的存储一小段信息文本,用来记录客户当前的信息,状态,权限等等 ...
方便请求某些数据或者一些方法带有的一个携带权限支持的一种方法~
设置cookie某字段有效期
结论
问题一:还是说必须要将session保存到缓存或数据库中?
答:建议存储到缓存中去,避免服务重启后会话全部失效。如果缓存服务不支持持久化,那么还需要落地到本地数据库。
问题二:如果将保存session_id的cookie设置很长的有效期,那么服务器端的session是否也会保存很长时间?
答:不会,两者没有硬性关联。
答:这里需要关注cookie的有效期T1、session的有效期T2、session的存储期T3。正常来说,T1 <= T2 <= T3。
很多时候session失效后,session对应的数据还是在数据库里待着,只是标识为失效而已。根据实际情况,可能会有定期清理数据库的动作。
如果将保存session_id的cookie设置很长的有效期,那么服务器端的session是否也会保存很长时间?
答:不会,后台的session时间一般由session-timeout参数决定。客户端的任何请求都能激活session,让session再续命session-timeout这么长时间。只要续命的时间到了(即这段时间内没有同一session的后续请求过来),session就会开始死亡(session失效)。