cookie,localSorage,sessionStorage的理解和区别
-
理解
1.共同点:cookie,sessionStorage,localStorage都是保存在浏览器端的,并且都是同源的。
2.Cookie: cookie数据始终在同源http请求中携带,在浏览器和服务器端来回传递。而sessionStorage和localStorage是不会自动把数据发给服务器的,仅在本地保存。cookie数据还有路径(path)概念,可以进行限制。cookie只属于某个路径下,存储数据大小限制也不同,cookie数据不能超过4kb。(同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如 回话标识)。
webStorage(localStorage和sessionStorage):也有存储大小的限制,但比cookie大得多,可以达到5M或更大
localStorage和sessionStorage的数据有效期不同;localStorage:用于持久化的本地存储,始终有效,窗口或浏览器关闭也一直保存,除非主动删除数据,否则不会过期。
sessionStorage:仅在当前会话下有效,关闭页面或浏览器后被清除。
作用域不同: sessionStorage :不在不同的浏览器窗口共享,即使是同一个页面
localStorage和cookie 均在所有同源窗口都是共享的。3关于cookie的主要作用/用途:
(1)用于保存用户登录状态。服务器再向客户端发送cookie后,浏览器会将cookie保存,之后每次http请求浏览器都会将cookie发送给服务器端。例如:将用户id存储在cookie中,这样当用户下次访问该页面是就不用了重新登录,并且cookie还可以设置过期时间,当超过过期时间之后,cookie就会自动消失。
(2)跟踪用户行为。用cookie来记录用户选项,例如:背景色,分辨率等。当用户下次访问时,依然可以保存上一次访问的界面分格。
- 区别
1.生命周期:
cookie可以设置失效时间,否则默认关闭浏览器后会失效;
localStorage:除非被手动清除,否则永远保存;
sessionStorage:仅在 当前会话下有效,关闭页面或浏览器后被清除。
2.存储数据
cookie:不能超过4kb
localStorage和sessionStorage:可以达到5M或者更多
3.http请求
cookie:每次都会携带在http头中,如果使用cookie保存过多数据会带来性能问题。
localStorage和sessionStorage:仅在客户端即浏览器中保存,不参与和服务器的通信。
4.易用性:
cookie:需要程序员自己封装,原生cookie接口不够友好
localStorage和sessionStorage:即可采用原生接口,也可以再次封装
5.应用场景
从安全性来说,因为每次http请求都会携带cookie信息,这样会浪费带宽,所以cookie应当尽可能少用,
此外cookie还需要指定作用域,不可以跨域调用,限制很多,但就用户识别 用户邓丽来说,cookie比storage好用。(其他情况下可以用storage)
localStorage:可以用在页面传递参数
sessionStorage:可以用来保存一些临时数据,防止用户刷新页面后,丢失一些参数。
cookie和session的区别,cookie有哪些限制?
- cookie数据存放在客户的浏览器上,session数据放在服务器上。
- cookie不是很安全,别人可以分析存放在本地的COOKIE,并进行COOKIE防骗,考虑到安全,应当使用session。
- session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能。考虑减轻服务器性能方面,应当使用COOKIE
- 单个cookie保存的数据不能超过4K,很多浏览器都限制在一个站点最多保存20个cookie。