js中cookie、localStorage、sessionStorage三种存储数据的差异及优劣势

数据存储是开发中不可避免的操作,前端支持cookie、localStorage、sessionStorage三种方式来处理数据的存储。

文中详细介绍三者之间的差异性,通过数据的对比直观了解cookie、localStorage、sessionStorage之间的使用不同。

数据设置方式

//cookie存储数据
function setCookie(cname,cvalue,exdays){
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
// localStorage存储数据
localStorage.setItem("lastname", "Smith");
// sessionStorage存储数据
sessionStorage.setItem("lastname", "Smith");

存储大小限制

    cookie:cookie的大小限制一般为4KB左右,因此它通常用于存储一些小量的数据。

    localStorage:在大多数现代浏览器中,localStorage的容量限制为5MB左右。

    sessionStorage:在大多数现代浏览器中,sessionStorage的容量限制也为5MB左右。

生命周期的差异

    cookie:cookie的生命周期可以由程序控制,默认情况下cookie会一直存在于浏览器端,直到用户清除cookie或过期。

    LocalStorage:localStorage的生命周期是永久的,除非用户在浏览器设置中删除或清空它们。

    sessionStorage:sessionStorage的生命周期比较短,通常会在当前会话结束时自动清除,也可以手动清除。

安全性

    cookie:cookie是包含在http请求中的明文信息,因此它的安全性相对较低,容易被窃取和篡改。

    localStorage和sessionStorage存在于浏览器端,只有在javascript中才能访问,因此它的安全性较高。

访问权限

    Cookie:可以设置访问路径和访问域名,以控制哪些页面可以访问Cookie;

    LocalStorage:存储的数据可以被同一域名下的所有页面访问。

    sessionStorage:用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。

服务器之间传递

    cookie在浏览器和服务器间来回传递。

    sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存

cookie的优点

    安全性更高:cookie在传输过程中会被加密,避免了敏感数据在传输过程中被篡改或者被截获。

    可以设置过期时间:cookie可以设置过期时间。

注:一个域名下存放的cookie的个数是有限制的,不同的浏览器的限制都不太一样,建议<30个。

六月初字帖坊小程序 你想要的字帖模板及工具,这里都有!