当前位置: 代码迷 >> 综合 >> cookie session localstroage 区别
  详细解决方案

cookie session localstroage 区别

热度:118   发布时间:2023-10-02 03:44:33.0

1. cookie 和session

cookie 和session是客户端和服务端的数据交互,通过会话的方式确定用户的身份。

1.1 cookie
  1. 可以设置失效时间,如果是浏览器默认生成的,则关闭后会失效
  2. 与服务端通信放在http请求头中
  3. 大小是4MB,数据是以字符串的形式存储在内存中
1.2 session

session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,而session存储在服务器。存储在服务器的数据会更加的安全,不容易被窃取。

1.3 session和cookie的结合使用
  1. 存储在服务端:通过cookie存储一个session_id,然后具体的数据则是保存在session中。如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。
  2. 将session数据加密,然后存储在cookie中。

2. WebStorage

HTML5的WebStorage提供了两种API: localStorage(本地存储)和sessionStorage(会话存储)

2.1生命周期:

localStorage的生命周期是永久的,关闭页面或浏览器之后localStorage中的数据也不会消失。localStorage除非主动删除数据,否则数据永远不会消失。
  sessionStorage的生命周期是在仅在当前会话下有效。sessionStorage引入了一个“浏览器窗口”的概念,sessionStorage是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是sessionStorage在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage也是不一样的。

2.2 存储大小:

localStorage和sessionStorage的存储数据大小一般都是:5MB

2.3 存储位置:

localStorage和sessionStorage都保存在客户端,不与服务器进行交互通信。

2.4 存储类型:

localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理

WebStorage由于不会传送到服务器,所以更安全,也能节省网络流量,存储数据也比cookie要大,存储在本地也使得读取数据更快,因为存在伪造问题,不建议存储敏感信息

每日壹题:

varletconst 区别?
varlet 用以声明变量,const 用于声明只读的常量;
var 声明的变量,不存在块级作用域,在全局范围内都有效,letconst 声明的,只在它所在的代码块内有效;
letconst 不存在像 var 那样的 “变量提升” 现象,所以 var 定义变量可以先使用,后声明,而 letconst 只可先声明,后使用;
let 声明的变量存在暂时性死区,即只要块级作用域中存在 let,那么它所声明的变量就绑定了这个区域,不再受外部的影响;
let 不允许在相同作用域内,重复声明同一个变量;
const 在声明时必须初始化赋值,一旦声明,其声明的值就不允许改变,更不允许重复声明;
  相关解决方案