一种基于cookie的会话保持方法及装置制造方法及图纸

技术编号:17884001 阅读:36 留言:0更新日期:2018-05-06 04:32
本申请提供一种基于cookie的会话保持方法,所述方法包括:在接收到客户端发出的HTTP报文的情况下,判断其是否携带cookie信息;在客户端发出的HTTP报文没有携带cookie信息的情况下,根据预设的负载均衡算法为客户端发送的HTTP报文分配服务器,并将客户端发出的HTTP报文发送给分配的服务器;在接收到分配的服务器发出的响应报文的情况下,在响应报文中插入cookie信息,并将插入cookie信息的响应报文返回给客户端;在接收到客户端再次发出的HTTP报文的情况下,解析其携带的cookie信息,根据解析得到的cookie信息将所述客户端再次发出的HTTP报文转发到分配的服务器。

A method and device for session retention based on cookie

The present application provides a session holding method based on cookie, which includes: judging whether or not it carries the cookie information in the case of receiving the HTTP message sent by the client; when the HTTP message sent by the client does not carry the cookie information, the HTTP is sent to the client according to the default load balancing algorithm. The message is assigned to the server, and the HTTP message sent by the client is sent to the assigned server; in the case of receiving the response message sent by the assigned server, the cookie information is inserted in the response message and the response message that is inserted into the cookie message is returned to the client; the HTTP message sent again by the client is received. In the case, the cookie information carried by the client is parsed and the HTTP message sent by the client is forwarded to the assigned server according to the cookie information obtained by the analysis.

【技术实现步骤摘要】
一种基于cookie的会话保持方法及装置
本申请涉及计算机互联网领域,尤其涉及一种基于cookie的会话保持方法及装置。
技术介绍
在电子商务的应用系统中或需要进行用户身份认证的在线系统中,客户端与服务器之间经常需要经过好几次的交互过程才能完成一笔交易或一次事务处理。由于这几次交互过程是密切相关的,因此与这个客户端相关的访问请求都由同一台服务器来进行处理,而不能通过负载均衡设备分配到不同的服务器上。为了实现这一机制,需要在负载均衡设备上配置会话保持机制,以确保客户端与服务器之间的交互过程不会因为部署了负载均衡而出现问题。现有的技术方案是当客户端第一次发出HTTP报文时,客户端发出的HTTP报文(没有携带cookie)进入负载均衡设备,负载均衡设备根据预设的负载均衡算法分配一台服务器,并将HTTP报文发送至该服务器;负载均衡设备在接收到服务器的响应报文时,在所述响应报文的头部插入cookie信息,负载均衡设备在响应报文的头部插入的cookie信息为服务器的IP地址和端口,并将该插入cookie信息的响应报文返回给客户端;当客户端再次发出HTTP报文时,负载均衡设备解析HTTP报文中携带的cookie信息,根据其携带的cookie信息将该HTTP报文发送至上次根据预设的负载均衡算法分配的服务器。现有技术方案的缺点是在实际应用场景中,存在具有相同IP地址和端口的服务器。例如服务器S1和服务器S2具有相同的IP地址和端口,当客户端C1第一次发出HTTP报文并且被分配到服务器S1上,在客户端C1发出HTTP报文后客户端C2也发出了HTTP报文,并且被分配到服务器S2上,因S1、S2具有相同的IP地址和端口,则C1和C2再次发出HTTP报文时会携带相同的cookie信息,则C2的HTTP报文可能被分配到S1上,基于cookie的会话保持机制将失效。
技术实现思路
有鉴于此,本申请提供一种基于cookie的会话保持方法及装置。具体地,本申请是通过如下技术方案实现的:一种基于cookie的会话保持方法,所述方法包括:在接收到客户端发出的HTTP报文的情况下,判断其是否携带cookie信息;在所述客户端发出的HTTP报文没有携带cookie信息的情况下,根据预设的负载均衡算法为客户端发送的HTTP报文分配服务器,并将所述客户端发出的HTTP报文发送给所述分配的服务器;在接收到所述分配的服务器发出的响应报文的情况下,在所述响应报文中插入cookie信息,并将插入cookie信息的响应报文返回给客户端,其中所述cookie信息由服务器的IP地址、端口和服务器ID组合而成,所述服务器ID是所述负载均衡设备为每台服务器分配的唯一标识;在接收到客户端再次发出的HTTP报文的情况下,解析其携带的cookie信息,根据解析得到的cookie信息将所述客户端再次发出的HTTP报文转发到所述分配的服务器。一种基于cookie的会话保持装置,其特征在于,所述装置包括:判断单元,用于在接收到客户端发出的HTTP报文的情况下,判断其是否携带cookie信息;服务器分配单元,用于在所述客户端发出的HTTP报文没有携带cookie信息的情况下,根据预设的负载均衡算法为客户端发送的HTTP报文分配服务器;报文发送单元,用于将所述客户端发出的HTTP报文发送给所述分配的服务器;信息插入单元,用于在接收到所述分配的服务器发出的响应报文的情况下,在所述响应报文中插入cookie信息;报文返回单元,用于将插入cookie信息的响应报文返回给客户端,其中所述cookie信息由服务器的IP地址、端口和服务器ID组合而成,所述服务器ID是所述负载均衡设备为每台服务器分配的唯一标识;报文转发单元,用于在接收到客户端再次发出的HTTP报文的情况下,解析其携带的cookie信息,根据解析得到的cookie信息将所述客户端再次发出的HTTP报文转发到所述分配的服务器。通过本申请的技术方案,由于为每个服务器分配了一个唯一的ID,则为每个服务器的响应报文的头部插入的cookie信息也是唯一的,当客户端再次发出HTTP报文时,根据其携带的cookie信息将该HTTP报文发送至上次根据预设的负载均衡算法分配的服务器。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本申请一示例性实施例示出的一种示例性应用场景示意图;图2是本申请一示例性实施例示出的基于cookie的会话保持方法的一种实施流程图;图3是本申请一示例性实施例示出的根据预设的负载均衡算法将接收到的不同HTTP报文分配到不同服务器的一种示意图;图4是本申请一示例性实施例示出的当再次接收到客户端发出的HTTP报文时中间的处理过程;图5是本申请一示例性实施例示出的基于cookie的会话保持装置的一种结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。首先对本申请实施例提供的一种基于cookie的会话保持方法进行说明,该方法可以具体包括以下步骤:在接收到客户端发出的HTTP报文的情况下,判断其是否携带cookie信息;在所述客户端发出的HTTP报文没有携带cookie信息的情况下,根据预设的负载均衡算法为客户端发送的HTTP报文分配服务器,并将所述客户端发出的HTTP报文发送给所述分配的服务器;在接收到所述分配的服务器发出的响应报文的情况下,在所述响应报文中插入cookie信息,并将插入cookie信息的响应报文返回给客户端,其中所述cookie信息由服务器的IP地址、端口和服务器ID组合而成,所述服务器ID是所述负载均衡设备为每台服务器分配的唯一标识;在接收到客户端再次发出的HTTP报文的情况下,解析其携带的cookie信息,根据解析得到的cookie信息将所述客户端再次发出的HTTP报文转发到所述分配的服务器。在
技术介绍
中提到,在实际应用场景中,如图1所示的示例性应用场景示意图,存在具有相同IP地址和端口的服务器。例如服务器S1和服务器S2具有相同的IP地址和端口,当客户端本文档来自技高网
...
一种基于cookie的会话保持方法及装置

【技术保护点】
一种基于cookie的会话保持方法,其特征在于,应用于负载均衡设备,所述方法包括:在接收到客户端发出的HTTP报文的情况下,判断其是否携带cookie信息;在所述客户端发出的HTTP报文没有携带cookie信息的情况下,根据预设的负载均衡算法为客户端发送的HTTP报文分配服务器,并将所述客户端发出的HTTP报文发送给所述分配的服务器;在接收到所述分配的服务器发出的响应报文的情况下,在所述响应报文中插入cookie信息,并将插入cookie信息的响应报文返回给客户端,其中所述cookie信息由服务器的IP地址、端口和服务器ID组合而成,所述服务器ID是所述负载均衡设备为每台服务器分配的唯一标识;在接收到客户端再次发出的HTTP报文的情况下,解析其携带的cookie信息,根据解析得到的cookie信息将所述客户端再次发出的HTTP报文转发到所述分配的服务器。

【技术特征摘要】
1.一种基于cookie的会话保持方法,其特征在于,应用于负载均衡设备,所述方法包括:在接收到客户端发出的HTTP报文的情况下,判断其是否携带cookie信息;在所述客户端发出的HTTP报文没有携带cookie信息的情况下,根据预设的负载均衡算法为客户端发送的HTTP报文分配服务器,并将所述客户端发出的HTTP报文发送给所述分配的服务器;在接收到所述分配的服务器发出的响应报文的情况下,在所述响应报文中插入cookie信息,并将插入cookie信息的响应报文返回给客户端,其中所述cookie信息由服务器的IP地址、端口和服务器ID组合而成,所述服务器ID是所述负载均衡设备为每台服务器分配的唯一标识;在接收到客户端再次发出的HTTP报文的情况下,解析其携带的cookie信息,根据解析得到的cookie信息将所述客户端再次发出的HTTP报文转发到所述分配的服务器。2.根据权利要求1所述的方法,其特征在于,所述在接收到所述分配的服务器发出的响应报文的情况下,在所述响应报文中插入cookie信息,并将插入cookie信息的响应报文返回给客户端,包括:在接收到所述分配的服务器发出的响应报文的情况下,在所述响应报文的报文头部插入cookie信息,并将插入cookie信息的响应报文返回给客户端。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述响应报文中插入cookie信息时,并设置cookie信息的生命周期。4.根据权利要求1至3任一项所述的方法,其特征在于,所述在接收到客户端再次发出的HTTP报文的情况下,解析其携带的cookie信息,根据解析得到的cookie信息将所述客户端再次发出的HTTP报文转发到所述分配的服务器,包括:在接收到客户端再次发出的HTTP报文的情况下,解析其携带的cookie信息,根据解析得到的所述服务器的IP地址、端口和服务器I...

【专利技术属性】
技术研发人员:王乐孙艳杰湛剑
申请(专利权)人:杭州迪普科技股份有限公司
类型:发明
国别省市:浙江,33

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

1