Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cookie,sessionStorage,localStorage的区别 #51

Open
zyb970821 opened this issue Jun 22, 2021 · 1 comment
Open

cookie,sessionStorage,localStorage的区别 #51

zyb970821 opened this issue Jun 22, 2021 · 1 comment

Comments

@zyb970821
Copy link

No description provided.

@yixiaosi1314
Copy link

cookie

HTTP Cookie简称cookie,在HTTP请求发送Set-Cookie HTTP头作为响应的一部分。通过name=value的形式存储,主要用于保存登录信息。

生命期为只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 存放数据大小为4K左右 。有个数限制(各浏览器不同),一般不能超过20个。与服务器端通信:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。

sessionStorage

​ sessionStorage对象存储特定于某个会话的数据,也就是该数据只保持到浏览器关闭

​ 将数据保存在session对象中。所谓session,是指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。session对象可以用来保存在这段时间内所要求保存的任何数据,为临时保存。

localStorage

​ 在HTML5中localStorage作为持久保存在客户端数据的方案,localStorage会永久存储会话数据,除非自己删除,否则会话数据一直存在。
​ 将数据保存在客户端本地的硬件设备(通常指硬盘,也可以是其他硬件设备)中,即使浏览器被关闭了,该数据仍然存在,下次打开浏览器访问网站时仍然可以继续使用,localStorage为永久保存

sessionStorage、localStorage和cookie的区别

生命周期

cookie:可设置失效时间,没有设置的话,默认是关闭浏览器后失效

localStorage:除非被手动清除,否则将会永久保存。

sessionStorage: 仅在当前网页会话下有效,关闭页面或浏览器后就会被清除。

大小

cookie:4KB左右

localStorage: 5MB的信息。

sessionStorage:5MB的信息。

http请求

cookie:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。

localStorage:仅在客户端(即浏览器)中保存,不参与和服务器的通信。

sessionStorage: 同上。

易用性

cookie:需要程序员自己封装,源生的Cookie接口不友好

localStorage:源生接口可以接受,亦可再次封装来对Object和Array有更好的支持

sessionStorage: 同上

应用场景

cookie:发送请求做权限验证

localStorage:关闭浏览器不会清除,适合用于存储一些不变的数据

sessionStorage:关闭浏览器就会清除,适合用于一些较为敏感的数据

图示说明

img

@Dogtiti Dogtiti removed the Cbayel label May 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants