根本不存在什么session和cookie的区别
经常听人说session和cookie的区别,听得多了连自己都糊涂了。 根本就没这回事。 session和cookie,说到底都是cookie,因为大多数的session是用cookie来实现的。既然两个都是cookie,谈区别就显得很可笑了。
正确的说法是:session和cookie一起用,和只用cookie,两者的区别。 这样说更加反映问题的本质。
常见误区1:cookie数据存放在客户的浏览器上,session数据放在服务器上。
真相:session也要借助cookie,也要存放在客户端。
常见误区2:只要关闭浏览器,session就消失了,而cookie不会消失
真相:正好说反了,只有cookie才会因为浏览器的关闭而消失,session是不会因为浏览器的关闭而消失的,服务端session一般是定期清理,一段时间不用会被删掉。
常见误区3:会话cookie即session,持久cookie即cookie。
真相:很多会话cookie并没有用到JSessionId这种服务端动态生成的机制,也就是说你每次登录进去,cookie都是一模一样的值,但是人家偏偏就是会话cookie。单凭cookie的生效时间、过期时间来判断,是不够的,要看服务端的实现原理。