• Cookie、Session、Token的区别


       Cookie:是存储在浏览器本地的信息,以字符串内键值对的形式存储会话信息(类似于JSON字符串);

        适用场景:由于HTTP协议是无状态、无连接的超文本传输协议,所以无法对用户会话进行跟踪连接,所以将会话信息存储到cookie,这样浏览器访问服务端的时候就能知道先前的连接会话信息;一般该信息记录用户身份,当然cookie也常记录跟踪购物车的商品信息(如数量)、记录用户访问次数等。

       安全性:由于在本地存储,不安全;

      生命周期:在浏览器中发起一个会话即新建的一个cookie文本,关闭浏览器窗口即cookie失效,这称为会话cookie;当然也可以设置cookie的有效时长,则会存储在本地直到失效,例如

    Response.Cookies(“LastView”).Expires=# 1/29/2003 #   设置cookie到2003年1月29号失效;
    c.setMaxAge(365*24*60*60);//一年;

      容量:一般为4k

    session:是存储在服务端的信息,可以存储任何数据;

    适用场景:session又称为会话状态,用于维护浏览器中实例相关的一些信息;例如在开发中要将获取到的用户对象存储到session中;

    生命周期:当浏览器第一次访问服务器时,服务器会生成一个sessionID并发送给浏览器,以及生成session,在tomcat中的默认有效时长是30min;也可以设置有效期或者手动删除                         session;

    安全性:相对cookie更安全;因为如果要访问session,要先获取到cookie中加密的sessionID;

    容量:无限制(但是显然要合理利用) 

    参考网址:https://www.cnblogs.com/zhangkai2237/archive/2012/03/22/2410890.html

    Token:是一种认证方式,“令牌”,根据用户的id和密码生成的唯一的字符串;

    适用场景:用于身份认证;当客户端频繁的从服务端请求数据,导致服务端频繁到数据库核对用户名和密码,此时以设备号/设备mac地址Token,只要客户端持有参数就可以直接请求数据,无需用户名和密码,否则返回错误信息;

    生命周期:当客户端第一次登录后,服务端生成Token,并传给客户端,保存到cookie或local Storage中;

    参考网址:https://blog.csdn.net/cmj6706/article/details/79032703

      

  • 相关阅读:
    JavaScript 正则表达式
    android源代码提示文本框还能输入多少个字符
    js实现鼠标点击input框后里面的内容就消失代码
    使用prompt输入一句英文句子和排序方式(升/降),将所有单词按排序方式排序后在网页上输出
    Javascript输出表格
    flutter 按键监听
    3.声明
    2.基础类型
    1.安装TypeScrpit
    苹果app证书
  • 原文地址:https://www.cnblogs.com/zwwang/p/13512900.html
Copyright © 2020-2023  润新知