localStorage、sessionStorage是H5提供的在客户端存储数据的新方法,之前,这些都是由 cookie 完成的。
区别:
1.生命周期:cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下,生成时就会被指定一个maxAge值,这就是cookie的生存周期,在这个周期内cookie有效,默认关闭浏览器失效。localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用,除非数据被清除,否则一直存在。sessionStorage 方法针对一个 session 进行数据存储,当用户关闭浏览器窗口后,数据会被删除。
2.存放数据大小:cookie,4K左右(因为每次http请求都会携带cookie)。localStorage 和 sessionStorage一般5M或更大。
3.与服务器通信:cookie由对服务器的请求来传递,每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。localStorage 和 sessionStorage数据不是由每个服务器请求传递的,而是只有在请求时使用数据,不参与和服务器的通信。
4.易用性:cookie需要自己封装setCookie,getCookie。localStorage 和 sessionStorage可以用源生接口,也可再次封装来对Object和Array有更好的支持。
相同点:都存储在客户端。