Cookie和session都可用来存储用户信心,cookie存放于客服端,session存放在服务端,因为cookie存放于客户端有可能被窃取,所以cookie一般用来存放不敏感的信息,比用户设置的网站主题,敏感的信息用session存储,比如用户的登录信息,session可以存放于文件,数据库neic中都可以,cookie可以服务器端响应的时候设置,也可以客户端通过JS设置cookie会在请求时在http首部发送给客户端,cookie一般在客服端有大小限制,一般为4k,下面从几个方向区分一下:
1.生命周期:
cookie:可设置失效时间,否则默认为关闭浏览器后失效
localstorage:chufeibei手动清除,否则永久保存
sessionstorage:仅在当前网页会话下有效,关闭页面或浏览器后就会被清除
2.存放数据:
cookie:4k左右
localstoragesessionstorage:可以保存5M的信息
3.http请求:
cookie:每次都会携带在http头中,如果使用cookie保存过多数据会带来性能问题
其他两个:仅在客服端即浏览器中保存,不参与和服务器的通信
4.易用性:
cookie:需要程序员自己封装,原生的cookie接口不友好
其他两个:即可采用原生接口,亦可再次封装
5.应用场景:
从安全性来说,因为每次http请求都会携带cookie信息,这样子浪费了带宽,所以cookie应该尽可能的少用,
因此cookie还需要指定作用域,不可以跨域调用,限制很多,但是用户识别用户登录来说,cookie还是比storage好用,其他情况下可以用stroage,
localstorage可以用来在页面传递参数,sessionstorage可以用来保存一些临时的数据,防止用户刷新页面后丢失了一些参数。