session和cookie的区别

常见误区1:cookie数据存放在客户的浏览器上,session数据放在服务器上。
真相:session也要借助cookie,也要存放在客户端。
点评:cookie与session通常都会有一个结合点,比如通过那个特殊的名字叫做JSESSIONID的cookie,或者通过加密后的cookie在服务器端还原回来类似userId等字段实现自动登录等

常见误区2:只要关闭浏览器,session就消失了,而cookie不会消失
真相:正好说反了,只有cookie才会因为浏览器的关闭而消失,session是不会因为浏览器的关闭而消失的,服务端session一般是定期清理,一段时间不用会被删掉。
点评:session与cookie的生命周期都是由服务器端控制,不同的是session是到期后由服务器删除,cookie到期后由浏览器删除

常见误区3:会话cookie即session,持久cookie即cookie。
真相:很多会话cookie并没有用到JSessionId这种服务端动态生成的机制,也就是说你每次登录进去,cookie都是一模一样的值,但是人家偏偏就是会话cookie。单凭cookie的生效时间、过期时间来判断,是不够的,要看服务端的实现原理。
点评:同意!

你可能感兴趣的:(session和cookie的区别)