Cookie/Session/Token对比

Posted june0816

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie/Session/Token对比相关的知识,希望对你有一定的参考价值。

一、Cookie

1. HTTP服务器是无状态的,不会记录上下文

2. Cookie是服务器生成,放在客户端存储

3. 用于识别用户

4. Cookie的安全机制:Max-Age/Domain/HttpOnly/Secure/Path等属性

5. Java中使用Cookie类

 

二、Session

1. 关键信息(比如账号密码)不能存储在客户端,因为可能被拦截

2. Session把关键内容存储在服务器端的ConcurrentHashMap中,SessionId存储在客户端的Cookie里

3. Session过期机制:

a. 客户端:和Cookie一致

b. 服务器端:默认30分钟

4. Session是由tomcat/jetty等服务器容器管理的,如果有多台服务器,需要分布式Session,例如Redis存放Session

5. Java中使用HttpSession类

 

三、Token

1. 服务器将用户信息经过Base64Url编码,传给客户端,客户端使用Json的格式保存

2. 每次客户端请求的时候,都会通过url/http头/post参数带上这段信息

3. 与Session比较,由于客户端有数据,不需要后台服务器的分布式处理

4. Json Web Token由三部分组成,这三部分拼接成一个字符串

a. header:用来描述JWT

b. payload:用来存放实际需要传输的数据

c. signature:用来对上面的数据加密

5. Java中使用JwtBuilder类

 

 

参考:

https://mp.weixin.qq.com/s/aNzWtwxrbudRkBNluOXo1w

 

以上是关于Cookie/Session/Token对比的主要内容,如果未能解决你的问题,请参考以下文章

cookiesession,token,还在傻傻分不清?

你管这破玩意儿叫 token

一文理清Session,Cookie和Token

cookie session token 之间的区别

熬夜彻底搞懂Cookie Session Token JWT

Cookie、Session、Token、RefreshToken