保定盛秋网络

0316-2636468  13831639196
  • 首页
  • H5开发
  • Android开发
  • IOS开发
  • 小程序开发
  • 新闻中心
  • 案例展示
  • 联系我们
  • 在线咨询
新闻中心

行业新闻
公司新闻
最新资讯

联系方式

盛秋网络科技(保定)有限公司
地址:保定朝阳北大街电谷酒店旁电谷中央时区B座18层
电话:0316-2636468
          13831639196
网站:www.baodingappkaifa.com

当前位置:首页 > 新闻中心> HTML5开发
HTML5开发

Java Web 开发必须掌握的三个技术:Token,Cookie,Session
2019/3/5 10:22:39 点击次数 作者

在Web应用中,HTTP请求是无状态的。即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面需要登录,就出现了cookie,sesseion。


Cookie


Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。Cookie存储的数据量有限,且都是保存在客户端浏览器中。不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用Cookie实际上只能存储一小段的文本信息。


例如:登录网站,今天输入用户名密码登录,第二天再打开很多情况下就直接打开了。这个时候用到的机制就是Cookie。


Session


Session是另一种记录客户状态的机制,他是在服务端保存的一个数据结构(主要存储SessionID和Session内容,同时也包含了很多自定义的内容如:用户基础信息,权限信息,用户机构信息,固定变量等),这个数据可以保存在集群,数据库,文件中,用户跟踪用户的状态。


客户浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找客户的状态就可以了。


用户第一次登录后,浏览器会自动将用户信息发送给服务器,服务器会为该用户创建一个SessionId,并在响应内容(Cookie)中将该SessionId一并返回浏览器,浏览器会将这些数据保存在本地。当用户再次发送请求时,浏览器会自动把上次请求存储的Cookie数据自动的携带给服务器。


服务器接收到请求信息后,会通过浏览器请求数据中的SessionId判断当前是哪个用户,然后根据SessionId在Session库中获取用户的Session数据返回给浏览器。


例如:购物车,添加了商品后客户端处可以知道添加了哪些商品,而服务器端如何判别呢,所以也需要存储一些信息就用到了Session。


如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是用过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。


Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时没访问过服务器,Session就自动失效。


Java Web 开发必须掌握的三个技术:Token,Cookie,Session

Session工作原理


Token


Http请求都是以无状态的形式对接。即Http服务器不知道本次请求和上一次请求是否有关联。所以就有了Session的引入,即服务端和客户端都保存一段文本,客户端每次发起请求都带着,这样服务器就知道客户端是否发起过请求。


这样就导致客户端频繁向服务端发出请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否。而Session的存储是需要空间的,频繁的查询数据库给服务器造成很大的压力。


在这种情况下,Token应运而生。


Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌。当客户端第一次房屋服务端,服务端会根据传过来的唯一标识userId,运用一些算法,并加上密钥,生成一个Token,然后通过BASE64编码一下之后将这个Token返回给客户端,客户端将Token保存起来(可以通过数据库或本地文件形式保存)。下次请求时,客户端只需要带上Token,服务器收到请求后,会用相同的算法和密钥去验证Token。


最简单的Token组成:uid(用户唯一的身份标识),time(当前时间的时间戳),sign(签名,有Token的前几位+以哈希算法压缩成一定长十六进制字符串,可以防止恶意第三方拼接Token请求服务器)。


使用基于Token的身份验证方法,在服务端不需要存储用户的登录记录,大概流程是这样的:


客户端使用用户名和密码请求登录

服务器端收到请求,去验证用户名密码

验证成功后,服务端会签发一个Token,再把这个Token发送给客户端

客户端收到Token以后可以把它存起来,比如放在Cookie里或者数据库里

客户端每次向服务端请求资源的时候需要带着服务端签发的Token

服务端收到请求,然后去验证客户端请求里面带着的Token,如果验证成功,就向客户端返回请求数据

APP登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果成功,以某种方式比如随机生成32位的字符串作为Token,存储到服务器中,并返回Token到App,以后App请求时,凡是需要验证的地方都要带上该Token,然后服务器端验证Token,成功返回所需要的结果,失败返回错误信息,让他重新登录。


对于同一个App同一个手机当前只有一个Token;手机App会存储一个有效的Token。其中服务器上Token设置一个有效期,每次App请求的时候都验证Token和有效器。


本文链接:http://www.baodingappkaifa.com/content/?336.html
分享到:
点击次数:  更新时间:2019/3/5 10:22:39  【打印此页】  【关闭】
上一条:B/S架构与C/S架构的区别、比较、优缺点  下一条:应用软件开发、小程序开发之小程序与HTML5的区别

相关文章

  • app开发的好处有哪些呢?​
  • App制作公司开发一个app的价格是多少呢?
  • APP应用开发中的五个核心原则
  • 返利APP开发,开发需要那些功能系统?
  • 开发一个职业教育行业APP有市场吗?
  • APP软件开发前需要做哪些开发准备?
  • 手机上那些让你欲罢不能的APP,前四个谁都拒绝不了!
  • 应用软件开发、小程序开发之小程序与HTML5的区别
  • Java Web 开发必须掌握的三个技术:Token,Cookie,Session
  • B/S架构与C/S架构的区别、比较、优缺点
友情链接:廊坊短视频营销 | 廊坊小程序开发| 廊坊APP开发| 廊坊抖音推广
保定APP开发,保定APP定制开发,保定APP制作,保定小程序开发,保定软件开发-盛秋网络
首页|H5开发|Android开发|IOS开发 | 网站地图 | 站点地图

版权所有 @ 盛秋网络科技(保定)有限公司 2017 冀ICP备17018066号-2   咨询电话:0316-2636468,13831639196