cookie,session,sessionStorage和localStorage

cookie,session,sessionStorage和localStorage的区别?

1.cookie

保存位置:浏览器端,存储内容只接受String类型

如果设置过期时间,保存在硬盘中,关闭浏览器后cookie数据仍然存在,直到过期事件结束才消失。

如果未设置过期时间,保存在内存中,生命周期随浏览器的关系而结束,这种cookie简称为会话cookie。

cookie原理:

应用场景:

1)判断用户是否登录过网站,以便于下次登录时能够实现自动登录(或者记住密码);

2)保存上次查看的页;

3)浏览次数。

cookie缺点:

1)存储小:单个cookie保存的数据不能超过4kb;

2)安全性低:别人可以分析存放在本地上的cookie并进行cookie欺骗;

3)每一次请求都会带上cookie传给服务器,体验不好,浪费宽带;

4)用户可以操作cookie,使功能受限。

2.session

保存位置:服务端,支持任何类型的存储内容

session与cookie关系:

session是基于cookie实现的,session必须将sessionID通过cookie发送到客户端;

第一次创建session,服务端会在http协议中告诉浏览器端,需要在cookie里面记录一个sessionID,以后每次请求把这个会话ID发送到服务器,据此来识别不同客户端。

应用场景

1)网上商城的购物车;

2)保存用户登录信息;

3)将某些数据放入session中,供同一用户的不同页面使用;

4)防止用户非法登录。

session缺点

1)session保存的东西越多,就越占用服务器内存,对于用户在线人数较多的网站,会加大服务器的压力;

2)依赖cookie,如果禁用cookie,则要使用URL重写;

3)过度使用session变量会导致代码不可读而且不好维护。

3.sessionStorage(会话存储)

保存位置:浏览器端,只能存储字符串类型。

生命周期:

仅在当前会话下有效,是在同源的窗口中始终存在的数据。只要这个浏览器没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。浏览器窗口关闭后数据被销毁。

应用场景:敏感账号一次性登录。

储存大小:浏览器对sessionStorage的大小限制是5MB。

4.localStorage(本地存储)

保存位置:浏览器端,只能存储字符串类型。

生命周期:

localStorage的生命周期是永久的,关闭页面或者浏览器之后localStorage中的数据也不会消失。

应用场景:长期登录、判断用户是否已登录、适合长期保存在本地的数据。

储存大小:浏览器对localStorage的大小限制是5MB。

转载于:https://juejin.im/post/5cf21d71f265da1b7401e4a2

猜你喜欢

转载自blog.csdn.net/weixin_34259159/article/details/91429043