Cookie、Session、Token学习记录

Cookie

什么是Cookie?

简单地说就是与服务器保持活动状态(保活)。而Cookie在计算机中是存在浏览器目中的文本文件,当浏览器运行时,存储在RAM中发挥作用,一但用户从该网站服务器退出,Cookie可存储在用户本地的硬盘上。

Cookie时效性

Cookie的时效性有是临时的,有是持续的。临时的Cookie会在浏览器上保存一段规定的时间,一旦超过规定的时间,该Cookie就会被系统清除

Cookie使用限制

  • (1)必须在HTML文件的内容输出之前设置
  • (2)不同浏览器对Cookie的处理不一致
  • (3)客户端设置禁止Cookie后则Cookie就不能建立
  • (4)客户端Cookie能创建的数量最多为300个,并且每个不能超过4KB,每个Web站点设置Cookie不能超过20个

执行流程

  • (1)首先,客户端会发送一个http请求到服务端
  • (2)服务端接受客户端请求后,发送一个http响应头到客户端,这个响应头其中就包含Set-Cookie头部
  • (3)在客户端发起的第二次请求(注意:如果服务器需要我们带上Cookie,我们就需要在(2)步骤上面拿到这个Cookie然后作为请求头一起发起第二次请求),提供给了服务器端可以用来唯一标识客户端身份的信息。这时,服务端也就可以判断客户端是否启用了Cookie。
Cookie、Session、Token学习记录_第1张图片

Session

什么是Session?

Session是对于服务端来说的,客户端是没有Session一说的。Session是服务器在和客户端建立连接时添加客户端连接标志。要知道浏览器打开一个页面用到的是HTTP协议,这个协议是无状态的,也就是说每次的请求是独立的,无关联的,而要二个或多个无关联的请求发生关联,Session就是充当其中的桥梁作用

Session的安全性

Session只存在于服务端中,所以能够保证很好的安全性。

Token

什么是Token?

Token是用户身份的验证方式,通常叫作:令牌。最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+燕以哈希算法压缩成一定的十六进制字符串,可以防止恶意第三方冰洁token请求服务器)。

应用场景

  • (1)当用户首次登陆成功(注册也是一种可以使用的场景)之后,服务端就会生成一个Token值,这个值会再服务器保存token值(保存在数据库中),再将这个token值返回给客户端。
  • (2)客户端拿到token值之后,进行本地保存。
  • (3)当客户端再次发送网路请求(一般不是登陆请求)的时候,就会将这个token值 附带到参数中发送给服务器。
  • (4)服务器接收到客户端的请求之后,会取出token值与保存在本地(数据库)中的 Token值做对比。
    • 对比一:两个token值相同,说明用户登陆成功过,当前用户处于登陆状态。
    • 对比二:没有这个token值,则说明没有登陆成功过。
    • 对比三:token值不一致,说明原来的登陆信息已经失效,让用户重新登陆。

你可能感兴趣的:(Cookie、Session、Token学习记录)