页面间数据传递:
做小程序前端时写了一个小算法用于计算做题完成后的结果分析。
学习了如何跨页面传递数据:
1.url params(通过url参数进行传递)
2.全局状态
3.本地数据存储
在做网页时,听老师讲到前端和后端交互是通过cookie和session,
有了解到cookie、session、token这几个词,想了解它们的区别。
百度了一下,这里自我总结一下:
首先需要了解session:
session并不是某个具体的东西,而是一个抽象的概念,是一种方法。
session 是另一种记录服务器和客户端会话状态的机制
session 是基于 cookie 实现的,session 存储在服务器端,sessionId 会被存储到客户端的cookie 中
引用自:https://www.cnblogs.com/qingbaizhinian/p/13634874.html
session这一方法是用于保存用户和服务之间的一种会话状态,是基于cookie实现的,而它们之间是通过SessionID联系在一起的。
什么是token?
有一点类似session,可用于替代session进行身份认证,但和session不同的是,session是保存在服务端中,当用户访问网站时,请求会带着cookie(内含SessionID)来认证身份;但token不是,token的数据是保存在客户端的。
token一般组成: uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token 的前几位以哈希算法压缩成的一定长度的十六进制字符串)
token身份认证流程:
1.用户使用客户端进行账号密码登录。
2.服务端收到请求,验证账号和密码。
3.服务端认证通过后,服务端会签发一个token发送给客户端。
4.客户端收到请求之后,会储存到客户端(例如cookie中)
5.客户端每次向服务端请求资源时,HTTP请求头中必须包含token。
如此一来,服务端就可以用解析 token 的计算时间换取 session 的存储空间,从而减轻服务器的压力,减少频繁的查询数据库,这个方法叫做JWT(Json Web Token)。
使用session进行身份认证的cookie是有状态的,token是无状态的。
这里的有无状态指的是是否会在服务端存储用户的会话状态。