一、cookie和session

  首先 session 和 cookie 用于浏览器客户端与服务端数据交互,通过会话的方式跟踪浏览器用户身份。

1、cookie

  (1)、一般由服务器生成,可以设置失效时间,如果是浏览器生成则默认浏览器关闭后失效;

  (2)、与服务器端通信,每次请求都放在 http 请求头中;

  (3)、数据存储在内存中,数据大小为4KB,保存在类型为字符串;

2、session

   session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,而session存储在服务器。存储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,一些session信息还是绰绰有余的。

3. session和cookie的结合使用

  web开发发展至今,cookie和session的使用已经出现了一些非常成熟的方案。在如今的市场或者企业里,一般有两种存储方式:

1)、存储在服务端:通过cookie存储一个session_id,然后具体的数据则是保存在session中。如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session。

2)、将session数据加密,然后存储在cookie中。这种专业术语叫做client side session。

二、WebStorage

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

1、生命周期:

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

2、存储大小:

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

3、存储位置:

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

4、存储类型:  

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

每日壹题:

  var 、let 、const 区别?

05-21 02:08