session 数据是存在在服务器上的。
cookie 数据是存放在客户浏览器上,cookie可以设置过期时间或不设置,不设置过期时间的cookie称为会话cookie,保存在浏览器的内存中,关闭浏览器cookie即失效;设置过期时间的cookie保存在浏览器的硬盘中,在有效期内一直有效。
sessioncookie是存储在浏览器的内存中,不同的用户通过sessionid来区别,sessionid关闭浏览器后,sessionid会消失,而有效期的cookie会保存在硬盘,每次打开浏览器可把原有的sessionid发送给服务器,获取原来的session。
localStorage 数据类似cookie,localStorage拥有更大的容量存储,cookie的大小是受限制的,cookie每次请求都需要发送出去,而localStorage数据存储在本地,方便直接调用,减少带宽的压力。
区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用cookie。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、通常将登陆信息等重要信息存放为session,其它信息如果需要保留,可以放在cookie中
6、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。
7、session中保存的是对象,cookie中保存的是字符串。
8、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。