localStorage | sessionStorage | cookie |
---|---|---|
只要不删除就会一直保存在本地 | 浏览器关闭数据也会跟着丢掉 | 设置的cookie过期时间之前一直有效,即使窗口或者浏览器关闭 |
优:扩展了cookie的4k限制;可以将第一次请求的5M大小数据直接存储在本地,节约带宽 | 优:不会保留个人信息之类的敏感信息,比较安全;仅仅是会话级别的存储 | 优:可以控制过期的时间,使其不会长期有效;可扩展、可用性比较好;可加密减少cookie被破解的可能性 |
缺:需要手动删除,否则长期存在;浏览器大小不一,支持也不一样;只支持string类型的存储,json对象需要转换; | 缺:浏览器关闭数据也随之销毁 | 缺:数量和长度有限制,最多20条,最长不能超过40k;在请求头上呆着数据安全性差 |
有存储大小的限制,比cookie大得多,可以到5M或者更大 | 数据大小不能超过4k | 数据大小不能超过4k |
localStorage和sessionStorage都属于web storage
web Storage的优缺点:
优点:
1、存储空间:存储空间更大。IE8下每个独立的存储空间为10M,其他浏览器略有不同,但都比cookie要大很多;
2、服务器:存储内容不会发送到浏览器。当设置了cookie后,cookie的内容会随着请求一并发送到服务器,这对于本地存储的数据是一种宽带浪费,而Web Storage中的数据则仅仅存在于本地,不会与服务器发生任何交互。
3、接口:更多丰富易用的借口;
4、存储空间:独立的存储空间,每个存储空间是独立的,因此不会造成数据混乱;
缺点:
1、浏览器会为每个域分配独立的存储空间,即脚本在域A中无法访问到域B中的存储空间,但是浏览器却不会检查脚本所在的域与当前域是否相同,即在域B中嵌入域A中的脚本依然可以访问域B中的数据;
2、存储在本地的数据未加密而且永远不会过期,极易造成隐私泄露。