cookie
是通过在浏览器第一次请求服务器时,在响应中放入cookie,浏览器接收到cookie后保存在本地,之后每次请求服务器时都将cookie携带到请求头中,用来验证用户身份与状态等。
缺点:
- 移动端app没有cookie
- cookie保存在本地不安全,而且用户可以禁用cookie
- cookie不可以跨域
Session
基于cookie的会话技术,是在浏览器第一次请求时,服务器生成一个sessionid返回给浏览器。之后,浏览器请求时将携带这个sessionid向服务器请求数据。服务器根据这个sessionid在服务器查询用户信息,验证用户状态。
缺点:
- 服务器集群环境下无法使用session
- cookie有的缺点,它也有。
令牌技术
- jwt技术 json web token
- 定义了一种简洁的,自包含的格式,用于在通信双方以json数据格式安全的传输信息,由于数字签名的存在,这些信息时可靠的。
- 组成:以 . 分割,前两部分使用base64编码。
- 第一部分:Header(头),记录令牌类型,签名算法等,例如{"alg":HS256","type":"JWT"
- 第二部分:Payload(有效载荷),携带一些自定义的信息,默认信息等。{"id":"1","username":"Tom"}
- 第三部分:signature(签名),防止token被篡改,确保安全性。将header。payload,并加入指定密钥,通过指定签名算法计算而来。