浏览器存储(cookie,sessionStorage与localStorage的区别)

Cookie最初是为了解决http无状态的问题,设置Cookie的方式有两种:服务端通过在HTTP响应头中的Set-Cookie字段设置,以及在前端通过JS的document.cookie设置。在浏览器在拥有Cookie之后,每次向服务器发送请求时,都会自动携带对应地址的Cookie。但是用户可以手动操作浏览器接受、拒绝和删除Cookie,以及是否向服务器发送Cookie。

cookie两种类型—会话cookie(Session Cookies)和永久性cookie(Persistent Cookies)

  • 会话期Cookie:会话期Cookie不设置具体失效时间,只会在当前会话结束之后,被删除掉。被存储在内存中,当会话关闭时,该Cookie永久丢失;

  • 持久性Cookie:持久性Cookie设置好具体的有效期,被存储在磁盘中,浏览器关闭不会影响该Cookie,只有当有效期结束时,才会从磁盘中将该Cookie删除。

在JS中使用Cookie是一个键值对组成的字符串:

document.cookie = "cookie2=value2;Expires=Wed, 21 Oct 2023 07:28:00 GMT;"

Cookie有13个属性,其中10个被广泛使用,另外3个并未被广泛支持。大致包括名词,值,过期时间,域名,路径,大小(<=4kb),安全等。

SessionStorage

SessionStorage 顾名思义就是存在与会话阶段,当会话结束时,SessionStorage 存储的数据即会失效。sessionStorage都保存在客户端,一般不与服务器进行通信交互。sessionStorage存储数据大小一般是5MB。API简单易用。

LocalStorage

localStorage理论上来说是永久有效的,即不主动清空的话就不会消失,即使保存的数据超出了浏览器所规定的大小,也不会把旧数据清空而只会报错。localStorage都保存在客户端,一般不与服务器进行通信交互。localStorage存储数据大小一般是5MB。API简单易用。

区别

  • API的易用性
  • 生命周期
  • 存储大小
  • 请求时是否自动携带
posted @ 2024-03-20 00:42  冰凉小手  阅读(13)  评论(0编辑  收藏  举报