SessionCookie和token区别
Posted 粉色的海绵宝宝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SessionCookie和token区别相关的知识,希望对你有一定的参考价值。
Session
、Cookie
和token
区别
-
session
- 是保存在服务端的数据,用来追踪用户的。
- 数据可以保存在集群、数据库、文件中(默认文件里)。
- 抽象的概念,用户信息与服务器之间的一对一交互形成的“会话状态”。
-
cookie
- 是客户端保存用户数据的一种机制,同时也协助
session
保存数据。 - http协议中定义在header中的字段。
- 实际存在的东西。
- 如果没有设置
cookie
过期时间,生命周期随着浏览器的关闭而结束。 - 大小限制在
4kb
- 是客户端保存用户数据的一种机制,同时也协助
-
token
-
存在
header
的authoriize
里面,支持移动平台。 -
只存在于浏览器里,服务端会有一套验证机制。
-
token
由3部分组成,header(签名算法),payload(用户id),signature(签名) -
token一旦生成就是有效的,除非token过期才不可用。
-
token
缺点token
太长,对请求来说是个不小的负担。- 不安全,存在localStorage本地存储里面,可以被
js
直接读取。
-
-
sessionStorage
- 将数据存在
session
对象中,从进入浏览器到浏览器关闭这段时间,session对象可以保存这段时间的任何数据。 - 临时保存,
5MB
。 - 获取方法
window.localStorage。
- 将数据存在
-
localStorage
- 将数据保存在客户端本地的硬件设备(硬盘等),即使浏览器关闭,下次重新打开还是可以继续使用。
- 永久保存,
5MB
。 - 获取方法
window.sessionStorage
。
-
维持一个会话的核心就是客户端的唯一标识,即 session id。
//sessionStorage和localStorage存储与读取
//sessionStorage 示例 (保存一个会话周期:从打开浏览器——到关闭浏览器窗口)
//保存:
sessionStorage.setItem("key","value");
//或者写成
sessionStorage.key="value";
//读取:
变量=sessionStorage.getItem("key");
//或者写成
变量=sessionStorage.key;
//localStorage 示例(可永久保存)
//保存:
localStorage.setItem("key","value");
//或者写成
localStorage.key="value";
//读取:
变量=localStorage.getItem("key");
//或者写成
变量=localStorage.key;
以上是关于SessionCookie和token区别的主要内容,如果未能解决你的问题,请参考以下文章
SessionCookie(httpOnly,secure)Token
add application window with unknown token XXX Unable to add window;is your activity is running?(代码片段
add application window with unknown token XXX Unable to add window;is your activity is running?(代码片段