测试面试必问:   token,cookie,session 有什么区别?

1.解释

1>Cookie
cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。

2>Session
session 从字面上讲,就是会话。这个就类似于你和一个人交谈,你怎么知道当前和你交谈的是张三而不是李四呢?对方肯定有某种特征,表明他就是张三。session 也是类似的道理,服务器要知道当前发请求给自己的是谁。为了做这种区分,服务器就要给每个客户端分配不同的“身份标识”,然后客户端每次向服务器发请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了。至于客户端怎么保存这个“身份标识”,可以有很多种方式,对于浏览器客户端,大家都默认采用 cookie 的方式。

服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。

3>Token
Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。

Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)。

使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。

2.cookie与session的区别

1、cookie数据存放在客户端上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、将登陆信息等重要信息存放为SESSION,其他信息如果需要保留,可以放在COOKIE中

3.session与token的却别

1、SSESION:我发给你一张身份证,但只是一张写着身份证号码的纸片。你每次来办事,我去后台查一下你的 id 是不是有效。 
2、TOKEN   :我发给你一张加密的身份证,以后你只要出示这张卡片,我就知道你一定是自己人。

测试面试题:cookie/session/token 分别表示什么意思,有什么区别?相关推荐

  1. 2、cookie session token详解

    cookie session token详解 转自:http://www.cnblogs.com/moyand/ 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...

  2. cookie session token区别_彻底理解cookie,session,token

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者: 墨颜丶 cnblogs.com/moyand/p/9047978.html 发展史 ...

  3. cookie session token区别_cookie、session与token的真正区别

    发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记 ...

  4. cookie session token 之间的区别

    cookie 和session的区别 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 ...

  5. Cookie Session Token 与 JWT 解析

    首先先了解一些关键词 认证.授权与凭证 什么是认证(Authentication)? 通俗地讲就是 验证当前用户的身份是否合法的过程,即你是谁?证明"你是你自己"(比如:你每天上下 ...

  6. 熬夜彻底搞懂Cookie Session Token JWT

    一切的根源就是因为 HTTP 是一个无状态的协议. HTTP 是一个无状态的协议 什么是无状态呢?就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的. 看过电影<夏洛特烦恼&g ...

  7. 大剑无锋之浅析Cookie/Session/Token

    Cookie Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式.Cookie存储的数据量有限,且都是保存在客户端浏览器中.不同的浏览器有不同的存储大 ...

  8. 复习深入笔记02:魔法方法/cookie,session,token/异常

    魔法方法 对象生成 1.先调用__new__方法,生成空对象.控制对象生成. 2.当执行"对象=类名(name=lqz)",触发类的__init__()

  9. Cookie、token、session的区别是什么?

    背景: 最近在总结一些容易理解混淆的概念,之前面试的时候提到过,我觉得也说不清楚,这两天项目做接口测试发现用的cookie而不是之前的token,于是总结一下,便于以后用到的时候再阅读以及分享给需要的 ...

最新文章

  1. 插入记录时单引号的处理
  2. 在Linux上进行内核参数调整
  3. 利用OpenCV的VideoWriter类实现视频的写操作
  4. 7、MySQL设置日志输出方式
  5. 产品分析:岛APP,青年文化拍了拍社交赛道
  6. libwebsockets / vs2019 编译 libwebsockets 4.0 方法
  7. 为什么MySQL索引要使用 B+树,而不是其它树形结构?
  8. 埃森哲携手阿里云,采用K8s容器云服务为客户提供无限弹性
  9. 通达信公式大全_通达信MACD金叉的选股公式大全
  10. 一些自己常用的linux命令笔记
  11. 移远EC600S-CN (4) - MQTT接入阿里云
  12. Hololens工程发布前后覆盖的问题
  13. QIIME 2教程. 22命令行界面q2cli(2021.2)
  14. vue 2.0项目中使用tinymce富文本框遇到的问题
  15. 瞬时日差检定测量仪的使用
  16. Sublime 中文命名乱码(显示为方框)
  17. 历史 微信开发者工具_微信开发者工具
  18. edi系统三要素_EDI标准的三要素是什么?
  19. `SpringBoot`+`axios`结合发送`ajax`请求
  20. intel服务器芯片排行,【2021Intel服务器CPU排行榜】Intel服务器CPU哪款好_热门Intel服务器CPU推荐-太平洋产品报价...

热门文章

  1. MATLAB绘制ROC曲线
  2. 中睿天下主机取证溯源系统与飞腾S2500完成兼容互认
  3. 飞测历史分享,目录整理篇
  4. 北京市雨量检测信息管理系统(使用ajax+反射+EL+JSTL实现)
  5. java天气信息管理系统,基于 Spring Boot + Spring Cloud 实现天气预报系统
  6. stm32f407+lan8720 和 python 实现多个TCP客户端连接的TCP服务器
  7. ckplayer循环播放不能设置的问题
  8. linux安装 msf,Centos下安装msf
  9. 天梯赛 L1-006 连续因子 (20 分)
  10. Springboot 分布式会话 io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required