cookie、session和jwt

cookie

1.cookie就是键值对

2.cookie保存在客户端

3.服务端可以对cookie进行操作,添加、删除、查询

4.cookie是一种技术,是客户端和服务端交流信息的一种渠道,一种手段,一种方式。

5.在cookie中保存一些简单的信息,用户时谁

6.安全性不高,任何人都能查看

7.每次浏览器访问的时候,都会发送cookie信息

8.cookie不能存储用户的密码,可以存储用户的行为习惯等

9.cookie和get、post一样都可以传输数据,只是cookie可以被禁用,而get、post一定可以使用

10.cookie具有不可跨域性,即不可以跨网站访问,也不可跨网站修改

11.cookie在设置键值对之外,还可以设置属性,最大时间等等

12.cookie的其他属性都不能被服务端读取,这个只属于浏览器

13.相同的二级域名和不同的三级域名(www.feiniaomuyu.com和aaa.feiniaomuyu.com)也是不能够互通cookie的,但是可以通过设置domain来确保互通cookie

14.domain是决定域名的,path是决定url的路径。不同的path也只能获取各自的cookie。设置为"/"表示,谁都能获取这个cookie

15.secure表示只会在https的情况下才发送cookie,但是并不会对cookie加密

session

1.session存储在服务端,客户端不存在session这个概念

2.session是一套逻辑,是保障信息传输安全的一种自定义的加密措施

3.session表示的是会话

4.session利用了cookie来传输信息。cookie不再保存用户的信息(用户名,密码)而是保存一个sessionId,这个sessionId是用户的唯一识别码。客户端若是第一次访问,则服务器会给客户端发送一个sessionId,来表明这是哪个用户。同时,该sessionId也会记录在服务端。如果不是第一次登陆,则客户端会带着存储在cooike的sessionId请求服务端,此时,服务端就可以识别出这是哪个用户,随后就可以根据用户来定制内容。

5.session相对cooike安全一点,对于服务器的压力大。

6.session也有各种属性可以设置

7.当cookie被禁止时,可以采用url重写的技术。类似于重定向,而重定向的地址为原地址加session。这样就可以保存session了,只不过,本次session的周期只有当浏览器关闭

8.sessionId会被保存到cooike中。由于cookie可以设置超时时间,无需登录的网站,我们可以设置为浏览器关闭则session失效,此时的cookie保存在内存中。存在登录的情况,我们可以设置为永久,或较长时间,将其保存在本地文件中

9.session解决了2次http请求之间的关联问题

10.这个session也不一定就是存储在cookie中的,在浏览器中,当然是存储在cookie中。而其他客户端,就有各自的存储方式了,可以存储在文件中。

token

1.令牌

2.组成:uid,时间戳,签名(多种组成)

3.在首次登陆后,会产生一个token,这个token会在服务端保存,也会返回给客户端。再次登陆时,比较这个token就可以知道登陆情况了。

4.sessonId只是提供了一个标识,只是认证这个客户端的。完全不涉及授权和认证这个内容。而token包含了uid,是涉及用户的。token包含了认证的手段,是一个比较笼统的概念。其中包含了更多的内容。

json web token(jwt)

1.分为3个部分,Header,Payload,Signature

2.Header表示头部信息,包含了token类型和加密算法。采用Base64编码格式(编码格式,不是加密算法,可逆)

3.Payload表示负载,包含用户非敏感信息,uid,时间等等。采用Base64编码格式。

4.Signature表示签名,签名是不可逆的,签名可以验证Header和Payload中的信息是否正确。(编码后的Header+编码后的Payload+秘钥) * Header中的加密算法。

5.由于Header和Payload都是可逆的,所以不应该存储机密信息,只能存储普通信息

token与session的对比

1.两者没有冲突

2.token比session更近了一步。session只是生产了一个全局唯一标识码给客户端,这个标识码本身没有其他信息。所以需要频繁的查询数据库,导致服务器压力,而且在分布式的情况下,需要同步session数据库。

3.而token也是一个全局唯一标识,但是他本身存储了很多的信息。所以在服务端接受到这个token后,无需与数据库对比,只要解析这个token就可以知道信息了。

4中方式对比:

1.cookie只是一种技术手段,存储在客户端

2.session存储在服务端,没有权限这种概念。

3.token,保存在客户端和服务端,每次请求验证

4.jwt,保存在客户端,通过算法验证,无需访问数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值