一种HTTP会话实现方法、系统、计算机设备及介质技术方案

技术编号:37332119 阅读:11 留言:0更新日期:2023-04-21 23:09
本发明专利技术公开了一种HTTP会话实现方法、系统、计算机设备及介质,其中方法包括:接收客户端发起的HTTP请求,并根据所述HTTP请求获取用户标识UID和客户端种子SEED;根据所述UID生成会话标志SessionID,并通过所述SessionID和所述SEED创建会话对象Session;接收并响应所述客户端通过所述Session进行的读写当前会话的数据的操作,并在当请求结束后将所述Session写入会话存储介质SessionStorage。本发明专利技术中的SessionID与用户产生了关联,从而使得SessionID除了作为会话标志外,还可用于指示当前有哪些客户端在线并可将指定的客户端强制踢下线,具有非常值得采纳与推广的意义。具有非常值得采纳与推广的意义。具有非常值得采纳与推广的意义。

【技术实现步骤摘要】
一种HTTP会话实现方法、系统、计算机设备及介质


[0001]本专利技术涉及互联网
,尤其涉及一种HTTP会话实现方法、系统、计算机设备及介质。

技术介绍

[0002]HTTP请求是一个无状态的过程,也就是说用户每次发起的请求之间是没有任何关联的,每次的请求结束就结束了,不会在做任何数据的存储。HTTP请求的无状态带来的问题和影响是:比如用户登录以后切换到别的界面进行操作,服务器端根本无法判别是哪个用户登录的,导致每次进行页面跳转的时候都要重新登录。
[0003]为了把来自同一个客户端的连续请求关联起来,有人提出了一种HTTP会话机制:为每个客户端绑定一个Sess ion I D(会话标志),并在服务端为每个Sess ion I D保存一份Sess ion(会话对象),从而客户端在每次访问服务端的时候,必须携带Sess ion I D才能访问Sess ion。
[0004]然而,现有的HTTP会话机制的默认实现存在的缺陷是:Sess ion I D是一串随机的字符串,没有跟应用中的用户产生任何关联,除了作为标志没有任何用处,导致服务端无法根据Sess ion I D来得到当前有哪些客户端在线,必须依赖数据库来实现。
[0005]因此,需要对现有技术进行改进。
[0006]以上信息作为背景信息给出只是为了辅助理解本公开,并没有确定或者承认任意上述内容是否可用作相对于本公开的现有技术。

技术实现思路

[0007]本专利技术提供一种HTTP会话实现方法、系统、计算机设备及介质,以解决现有技术的不足。
[0008]为实现上述目的,本专利技术提供以下的技术方案:
[0009]第一方面,本专利技术提供一种HTTP会话实现方法,应用于服务端,所述方法包括:
[0010]接收客户端发起的HTTP请求,并根据所述HTTP请求获取用户标识UI D和客户端种子SEED;
[0011]根据所述UI D生成会话标志Sess ion I D,并通过所述Sess ion I D和所述SEED创建会话对象Sess ion;
[0012]接收并响应所述客户端通过所述Sess ion进行的读写当前会话的数据的操作,并在当请求结束后将所述Sess ion写入会话存储介质Sess i onStorage。
[0013]进一步地,所述HTTP会话实现方法中,所述接收客户端发起的HTTP请求,并根据所述HTTP请求获取用户标识UI D和客户端种子SEED的步骤包括:
[0014]接收客户端发起的HTTP请求,并检测所述HTTP请求中是否携带会话请求令牌TOKEN;
[0015]若是,则对所述TOKEN中进行解析,以得到用户标识UI D和客户端种子SEED;
[0016]若否,则检测所述HTTP请求是否为登录请求;
[0017]若是,则从所述HTTP请求中提取用户I D作为所述UI D,以及随机生成所述SEED,并根据所述UI D和所述SEED生成待发送给所述客户端的TOKEN;
[0018]若否,则随机生成所述UI D和所述SEED,并根据所述UI D和所述SEED生成待发送给所述客户端的TOKEN。
[0019]进一步地,所述HTTP会话实现方法中,所述根据所述U I D生成会话标志Sess ion I D,并通过所述Sess ion I D和所述SEED创建会话对象Sess ion的步骤包括:
[0020]使用密钥将所述UI D进行加密,以得到会话标志Sess ion I D;
[0021]从会话存储介质Sess ionStorage中读取所述Sess ion I D对应的所有会话数据Sess ionData;
[0022]通过所述SEED来定位所述Sess ionData,并封装成会话对象Sess ion。
[0023]进一步地,所述HTTP会话实现方法中,在所述根据所述UI D生成会话标志Sess ion I D,并通过所述Sess ion I D和所述SEED创建会话对象Sess ion的步骤之后,所述方法还包括:
[0024]验证所述HTTP请求是否合法;
[0025]若是,则执行所述接收并响应所述客户端通过所述Sess i on进行的读写当前会话的数据的操作,并在当请求结束后将所述Sess ion写入会话存储介质Sess ionStorage的步骤;
[0026]若否,则终止会话。
[0027]进一步地,所述HTTP会话实现方法中,所述验证所述HTTP请求是否合法的步骤包括:
[0028]通过所述Sess ion获取会话数据Sess ionData;
[0029]判断本次请求的客户端指纹与在所述Sess ion中存储的上一次请求的客户端指纹是否一致;
[0030]若否,则验证为不合法;
[0031]若是,则判断本次请求的客户端I P与在所述Sess ion存储的上一次请求的客户端I P是否不一致,且服务端的Sess i on配置中是否不允许使用代理;
[0032]若是,则验证为不合法;
[0033]若否,则验证为合法。
[0034]进一步地,所述HTTP会话实现方法中,在所述验证为合法的步骤之后,所述方法还包括:
[0035]遍历所述Sess ionData,统计所述UI D下已经登录的客户端数量;
[0036]判断所述UI D下已经登录的客户端数量是否超过服务端配置的最大客户端数量;
[0037]若是,则将最早登录的客户端踢下线,发送对应的错误代码至下线的客户端,再执行所述接收并响应所述客户端通过所述Sess ion进行的读写当前会话的数据的操作,并在当请求结束后将所述Sess ion写入会话存储介质Sess ionStorage的步骤;
[0038]如否,则直接执行所述接收并响应所述客户端通过所述Sess ion进行的读写当前会话的数据的操作,并在当请求结束后将所述Sess i on写入会话存储介质Sess ionStorage的步骤。
[0039]进一步地,所述HTTP会话实现方法中,在所述接收并响应所述客户端通过所述Sess i on进行的读写当前会话的数据的操作,并在当请求结束后将所述Sess ion写入会话存储介质Sess ionStorage的步骤之后,所述方法还包括:
[0040]将本次请求的客户端指纹和客户端I P ADDR存储到所述Sess ion中。
[0041]进一步地,所述HTTP会话实现方法中,所述根据所述UI D和所述SEED生成待发送给所述客户端的TOKEN的步骤包括:
[0042]使用私钥对所述UI D、SEED和ADDR进行签名,得到SI GN;
[0043]将所述UI D、SEED、ADDR和SI GN封装成TOKEN,再将所述TOKEN转成JSON字符串TOKEN_JSON;
[0044]将所述TOKEN_JS本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种HTTP会话实现方法,应用于服务端,其特征在于,所述方法包括:接收客户端发起的HTTP请求,并根据所述HTTP请求获取用户标识UID和客户端种子SEED;根据所述UID生成会话标志SessionID,并通过所述SessionID和所述SEED创建会话对象Session;接收并响应所述客户端通过所述Session进行的读写当前会话的数据的操作,并在当请求结束后将所述Session写入会话存储介质SessionStorage。2.根据权利要求1所述的HTTP会话实现方法,其特征在于,所述接收客户端发起的HTTP请求,并根据所述HTTP请求获取用户标识UID和客户端种子SEED的步骤包括:接收客户端发起的HTTP请求,并检测所述HTTP请求中是否携带会话请求令牌TOKEN;若是,则对所述TOKEN中进行解析,以得到用户标识UID和客户端种子SEED;若否,则检测所述HTTP请求是否为登录请求;若是,则从所述HTTP请求中提取用户ID作为所述UID,以及随机生成所述SEED,并根据所述UID和所述SEED生成待发送给所述客户端的TOKEN;若否,则随机生成所述UID和所述SEED,并根据所述UID和所述SEED生成待发送给所述客户端的TOKEN。3.根据权利要求1所述的HTTP会话实现方法,其特征在于,所述根据所述UID生成会话标志SessionID,并通过所述SessionID和所述SEED创建会话对象Session的步骤包括:使用密钥将所述UID进行加密,以得到会话标志SessionID;从会话存储介质SessionStorage中读取所述SessionID对应的所有会话数据SessionData;通过所述SEED来定位所述SessionData,并封装成会话对象Session。4.根据权利要求1所述的HTTP会话实现方法,其特征在于,在所述根据所述UID生成会话标志SessionID,并通过所述SessionID和所述SEED创建会话对象Session的步骤之后,所述方法还包括:验证所述HTTP请求是否合法;若是,则执行所述接收并响应所述客户端通过所述Session进行的读写当前会话的数据的操作,并在当请求结束后将所述Session写入会话存储介质SessionStorage的步骤;若否,则终止会话。5.根据权利要求4所述的HTTP会话实现方法,其特征在于,所述验证所述HTTP请求是否合法的步骤包括:通过所述Session获取会话数据SessionData;判断本次请求的客户端指纹与在所述Session中存储的上一次请求的客户端指纹是否一致;若否,则验证为不合法;若是,则判断本次请求的客户端IP与在所述Session存储的上一次请求的客户端IP是否不一致,且服务端的Session配...

【专利技术属性】
技术研发人员:阳建李实彭添才王富贵
申请(专利权)人:东莞盟大集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1