Cookie、sessionStorage、localStorage的区别


共同点:都是保存在浏览器端,并且是同源的

一、Cookie(存放于客户端)

1.cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

2.cookie数据的路径(path),可以限制cookie只属于某个路径下,存储的大小很小只有4K左右。

3.cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

4.cookie在所有同源窗口中都是共享的。保存用户登录状态。例如将用户id存储于一个cookie内,这样当用户下次访问该页面时就不需要重新登录了,现在很多论坛和社区都提供这样的功能。

5.但cookie不安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session(存放于服务器端)。

所以cookie一般用来存放不敏感的信息,比如用户设置的网站主题,敏感的信息用session存储,比如用户的登陆信息,session可以存放于文件,数据库,内存中都可以,cookie可以服务器端响应的时候设置,也可以客户端通过JS设置cookie会在请求时在http首部发送给客户端。

二、sessionStorage

仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持。

session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie。

三、localStorage

始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;

localStorage在所有同源窗口中都是共享的,不管窗口或者浏览器关闭与否都会始终生效)

现在的想法是