发明内容
针对上述背景技术中存在的问题,本发明的目的在于提供一种能够减少客户端cookie更新对客户端和服务端之间的数据传输资源占用,提高客户端cookie更新效率的cookie更新方法。
一种cookie更新方法,包括步骤:
从服务端cookie中的各个属性资料的更新时间标记中,获取最大的更新时间标记作为标准更新时间标记,保存到客户端;
在客户端cookie更新时,将所述客户端保存的所述标准更新时间标记发送到所述服务端;
将所述标准更新时间标记与当前相应的服务端cookie中的各个属性资料的更新时间标记比较;
如果所述服务端cookie中的属性资料的更新时间标记大于所述标准更新时间标记,则将相应的所述服务端cookie中的属性资料的更新数据发送到所述客户端,更新所述客户端cookie中的相应属性资料。
本发明的cookie更新方法中,通过获取服务端cookie中的各个属性资料的最大的更新时间标记作为标准更新时间标记保存到客户端。在客户端cookie更新时,只需要将所述标准更新时间标记发送到服务端,而无需发送客户端cookie的所有属性资料以及其对应的版本号,节省了大量的上行数据量。并且在服务端接收所述标准更新时间标记后,只将当前服务端cookie中更新时间标记比所述标准更新时间标记大的属性资料的更新数据发送到所述客户端,而无需将服务端cookie中的所有属性数据的更新数据都发送到所述客户端,同样可以降低对下行数据通道的占用,提高客户端cookie更新效率。
针对上述背景技术中存在的问题,本发明的目的还在于提供一种能够减少客户端cookie更新对客户端和服务端之间的数据传输资源占用,提高客户端cookie更新效率的cookie更新系统。
一种cookie更新系统,包括:包括客户端和服务端;
所述客户端用于保存所述服务端发送的标准更新时间标记;并在客户端cookie更新时,将所述标准更新时间标记发送到所述服务端;根据服务端cookie中的属性资料的更新数据,更新所述客户端cookie中的相应属性资料;
所述服务端用于从所述服务端cookie中的各个属性资料的更新时间标记中,获取最大的更新时间标记作为所述标准更新时间标记发送到所述客户端;接收所述客户端发送的所述标准更新时间标记,并将所述标准更新时间标记与当前相应的服务端cookie中的各个属性资料的更新时间标记比较;在所述服务端cookie中的属性资料的更新时间标记大于所述标准更新时间标记,将相应的所述服务端cookie中的属性资料的更新数据发送到所述客户端。
本发明的cookie更新系统中,所述服务端获取服务端cookie中的各个属性资料的最大的更新时间标记作为标准更新时间标记保存到客户端。在客户端cookie更新时,所述客户端只需要将所述标准更新时间标记发送到服务端,而无需发送客户端cookie的所有属性资料以及其对应的版本号,节省了大量的上行数据量。并且服务端接收所述标准更新时间标记后,只将当前服务端cookie中更新时间标记比所述标准更新时间标记大的属性资料的更新数据发送到所述客户端,而无需将服务端cookie中的所有属性数据的更新数据都发送到所述客户端,同样可以降低对下行数据通道的占用,提高客户端cookie更新效率。
具体实施方式
请参阅图1,图1是本发明cookie更新方法的步骤流程图。
所述cookie更新方法包括以下步骤:
S101,从服务端cookie中的各项属性资料的更新时间标记中,获取最大的更新时间标记作为标准更新时间标记,保存到客户端;
在本步骤中,所述更新时间标记可以是所述服务端cookie中的各项属性资料的更新时间,或者版本号,或者其他可以表示各项属性资料的更新时间的标记。所述更新时间标记最大,即对应的所述属性资料的更新时间最迟,更新数据最新。
假设所述服务端cookie中包含多项属性资料,比如等级,个人资料,头像,昵称,年龄,是否开通会员,开通新应用等。则所述服务端cookie在各项属性资料更新时都记录其各自的更新时间,或者版本号,通常由服务端将更新时间,或者版本号记录在对应的服务端cookie中。
在本实施方式中,以各项属性资料的更新版本号作为所述更新时间标记。即在本步骤中,首先获取所述服务端cookie中的各项属性资料的更新版本号。找出最大的更新版本号。
如图2所示,所述服务端cookie包含Ck1、Ck2、Ck3、Ck4、Ck5、Ck6、Ck7共七项属性资料,其各自对应的更新版本号是Ck1的版本号T0最大。因此,在本步骤中获取所述更新版本号T0作为所述标准更新时间标记,将所述更新版本号T0从服务端发送到客户端,并在客户端保存所述更新版本号T0。
S102,在客户端cookie更新时,将所述客户端保存的所述标准更新时间标记发送到所述服务端;
所述客户端cookie的更新时间可以根据需要设定,例如设定以预定时间间隔更新所述客户端cookie,如设定每隔10分钟更新一次的更新机制,即使客户端丢失了更新数据,对也不会造成太大的影响,下次进行更新的时候依然能够获得更新数据。又例如在客户端或服务端触发某种操作时,触发更新所述客户端cookie,比如用户操作,点击。
在本步骤中,将所述客户端保存的所述标准更新时间标记发送到所述服务端,亦即,将上述步骤1中保存在客户端的所述更新版本号T0发送到服务端。
S103,将所述标准更新时间标记与当前相应的服务端cookie中的各个属性资料的更新时间标记比较;
因为从所述服务端将所述标准更新时间标记发送到客户端保存,到所述客户端cookie更新时,将所述标准更新时间标记发送到所述服务端之间,有一定时间间隔。在这一时间间隔之内,所述服务端cookie的各项属性资料可能发生更新,例如用户在这一时间间隔之内产生了新的浏览历史记录,或者设定了新的个人资料,又或者开通了新的服务,都将使所述服务端cookie中对应的属性资料发生更新,并且所述服务端cookie中对应的属性资料的更新时间标记也会刷新,变得比所述标准更新时间标记大。
因此,将所述标准更新时间标记与当前相应的服务端cookie中的各个属性资料的更新时间标记比较,即可判断更新时间迟于所述标准更新时间标记的属性资料是哪一项,亦即哪一项属性资料在服务端发出所述标准更新时间标记之后发生了更新,与客户端cookie中对应的属性资料不同步。亦即判断出所述客户端cookie中需要更新的属性资料是哪一项。
S104,如果所述服务端cookie中的属性资料的更新时间标记大于所述标准更新时间标记,则将所述服务端cookie中相应的属性资料的更新数据发送到所述客户端;
根据上述步骤中的对比,判断出所述客户端cookie中需要更新的属性资料之后,将所述服务端cookie中相应的属性资料的更新数据发送到所述客户端。
例如假设判断出有两项属性资料Ck3、Ck5的版本号T1和T2,T2>T1>T0,则两项属性资料Ck3、Ck5所对应的属性资料:头像和个人资料需要更新,则将所述头像和个人资料的更新数据发送至所述客户端。
在本实施方式中,在服务端,按照预定的数据包打包协议将所述服务端cookie中的属性资料的更新数据打包成更新数据包,并将所述更新数据包发送至所述客户端;
客户端接收之后,按照与所述数据包打包协议相对应的数据包解析协议,解析所述更新数据包,获得所述客户端cookie中的相应属性资料的更新数据。
因为只发送部分属性资料的更新数据,所以客户端和服务端之间需要定义相应的传输协议以便客户端可以准确识别接收的数据。
因此,服务端根据预先设定的数据包打包协议,将这些需要更新的属性资料的更新数据封装成客户端可读的数据包,发送给所述客户端,客户端根据数据包解析协议进行解析,准确获取所述更新数据包中的相应属性资料的更新数据后,就可以根据对所述客户端cookie中的相应属性资料进行更新。
这里的所述数据包打包协议主要包括数据类型和数据包的数据内容,所述客户端根据这个数据包的数据类型来执行对应的处理逻辑。
S105,更新所述客户端cookie中的相应属性资料。
按照上述的例子,在本步骤中,根据所述属性资料Ck3、Ck5所对应的头像和个人资料的更新数据,更新客户端cookie中的头像和个人资料两项属性资料。
本发明的cookie更新方法中,通过获取服务端cookie中的各个属性资料的最大的更新时间标记作为标准更新时间标记保存到客户端。在客户端cookie更新时,只需要将所述标准更新时间标记发送到服务端,而无需发送客户端cookie的所有属性资料以及其对应的版本号,节省了大量的上行数据量。并且在服务端接收所述标准更新时间标记后,只将当前服务端cookie中更新时间标记比所述标准更新时间标记大的属性资料的更新数据发送到所述客户端,而无需将服务端cookie中的所有属性数据的更新数据都发送到所述客户端,同样可以降低对下行数据通道的占用,提高客户端cookie更新效率。
进一步地,在执行步骤S105,更新所述客户端cookie中的相应属性资料之后,进一步执行以下步骤:
从所述服务端cookie中的各个属性资料的更新时间标记中,获取最大的更新时间标记作为所述标准更新时间标记,更新所述客户端保存的标准更新时间标记。
亦即,在完成所述客户端cookie的更新之后,重新从所述服务端cookie中的各个属性资料的更新时间标记中,获取最大的更新时间标记作为所述标准更新时间标记,发送至所述客户端更新所述客户端保存的标准更新时间标记。例如上述例子中,将最大的版本号T2发送到所述客户端,作为所述客户端新的标准更新时间标记。
这样使客户端在下一次需要更新所述客户端cookie时,可以再次根据更新后的所述标准更新时间标记向服务端请求更新数据,使每次客户端cookie的更新都只需要在客户端和服务端之间传输所述标准更新时间标记和需要更新的部分属性资料的更新数据,降低对下行数据通道的占用,提高客户端cookie更新效率。
请参阅图3,图3是本发明cookie更新方法的一个实施例的示意图。
在本实施例中,客户端是智能手机。
所述服务端cookie包含Ck1、Ck2、Ck3、Ck4、Ck5、Ck6、Ck7共七项属性资料,其各自对应的更新版本号是Ck1的版本号T0最大。因此将所述版本号T0发送到手机;
手机保存所述版本号T0后,在需要进行客户端cookie更新时将所述版本号T0发送到服务端;
服务端在此时间间隔内进行了服务端cookie的数据更新,其中两项属性资料的版本号T1和T2,T2>T1>T0,则对应的两项属性资料有更新。
将所述两项属性资料的更新数据发送到所述客户端后,将当前最大的属性资料的版本号T2也发送到所述客户端;
客户端保存所述版本号T2后,在下一次需要进行客户端cookie更新时将所述版本号T2发送到服务端;
如果当前的服务端cookie的属性资料的版本号都小于T2,则无需更新,客户端每N分钟发送一次包含T2的Hello包,检查客户端cookie的更新情况。
请参阅图4,图4是本发明cookie更新系统的结构示意图。
所述cookie更新系统包括:包括客户端11和服务端12;
所述客户端11用于保存所述服务端发送的标准更新时间标记;并在客户端cookie更新时,将所述标准更新时间标记发送到所述服务端12;根据服务端cookie中的属性资料的更新数据,更新所述客户端cookie中的相应属性资料;
所述服务端12用于从所述服务端cookie中的各个属性资料的更新时间标记中,获取最大的更新时间标记作为所述标准更新时间标记发送到所述客户端11;接收所述客户端11发送的所述标准更新时间标记,并将所述标准更新时间标记与当前相应的服务端cookie中的各个属性资料的更新时间标记比较;在所述服务端cookie中的属性资料的更新时间标记大于所述标准更新时间标记,将所述服务端cookie中相应的属性资料的更新数据发送到所述客户端12。
本发明的cookie更新系统中,所述服务端获取服务端cookie中的各个属性资料的最大的更新时间标记作为标准更新时间标记保存到客户端。在客户端cookie更新时,所述客户端只需要将所述标准更新时间标记发送到服务端,而无需发送客户端cookie的所有属性资料以及其对应的版本号,节省了大量的上行数据量。并且服务端接收所述标准更新时间标记后,只将当前服务端cookie中更新时间标记比所述标准更新时间标记大的属性资料的更新数据发送到所述客户端,而无需将服务端cookie中的所有属性数据的更新数据都发送到所述客户端,同样可以降低对下行数据通道的占用,提高客户端cookie更新效率。
其中,所述更新时间标记可以是所述服务端cookie中的各项属性资料的更新时间,或者版本号,或者其他可以表示各项属性资料的更新时间的标记。所述更新时间标记最大,即对应的所述属性资料的更新时间最迟,更新数据最新。
假设所述服务端cookie中包含多项属性资料,比如等级,个人资料,头像,昵称,年龄,是否开通会员,开通新应用等。则所述服务端cookie在各项属性资料更新时都记录其各自的更新时间,或者版本号,通常由所述服务端12将更新时间,或者版本号记录在对应的服务端cookie中。
在本实施方式中,以各项属性资料的更新版本号作为所述更新时间标记。即所述服务端12首先获取所述服务端cookie中的各项属性资料的更新版本号。找出最大的更新版本号。
所述客户端11在客户端cookie更新时,将所述客户端保存的所述标准更新时间标记发送到所述服务端12;
所述客户端cookie的更新时间可以根据需要设定,例如设定以预定时间间隔更新所述客户端cookie,如设定每隔10分钟更新一次的更新机制,即使所述客户端11丢失了更新数据,对也不会造成太大的影响,下次进行更新的时候依然能够获得更新数据。又例如在所述客户端11或所述服务端12触发某种操作时,触发更新所述客户端cookie,比如用户点击、操作等。
所述服务端12将所述标准更新时间标记与当前相应的服务端cookie中的各个属性资料的更新时间标记比较;
因为从所述服务端12将所述标准更新时间标记发送到客户端11保存,到所述客户端cookie更新时,将所述标准更新时间标记发送到所述服务端12之间,有一定时间间隔。在这一时间间隔之内,所述服务端cookie的各项属性资料可能发生更新,例如用户在这一时间间隔之内产生了新的浏览历史记录,或者设定了新的个人资料,又或者开通了新的服务,都将使所述服务端cookie中对应的属性资料发生更新,并且所述服务端cookie中对应的属性资料的更新时间标记也会刷新,变得比所述标准更新时间标记大。
因此,所述服务端12将所述标准更新时间标记与当前相应的服务端cookie中的各个属性资料的更新时间标记比较,即可判断更新时间迟于所述标准更新时间标记的属性资料是哪一项,亦即哪一项属性资料在服务端发出所述标准更新时间标记之后发生了更新,与客户端cookie中对应的属性资料不同步。亦即判断出所述客户端cookie中需要更新的属性资料是哪一项。
所述服务端12判断出所述客户端cookie中需要更新的属性资料之后,将所述服务端cookie中相应的属性资料的更新数据发送到所述客户端11。
在本实施方式中,所述服务端12按照预定的数据包打包协议将所述服务端cookie中的属性资料的更新数据打包成更新数据包,并将所述更新数据包发送至所述客户端11;
所述客户端11接收之后,按照与所述数据包打包协议相对应的数据包解析协议,解析所述更新数据包,获得所述客户端cookie中的相应属性资料的更新数据。
因为只发送部分属性资料的更新数据,所以客户端11和服务端12之间需要定义相应的传输协议以便客户端11可以准确识别接收的数据。
因此,所述服务端12根据预先设定的数据包打包协议,将这些需要更新的属性资料的更新数据封装成客户端11可读的数据包,发送给所述客户端11,所述客户端11根据数据包解析协议进行解析,准确获取所述更新数据包中的相应属性资料的更新数据后,就可以根据对所述客户端cookie中的相应属性资料进行更新。这里的所述数据包打包协议主要包括数据类型和数据包的数据内容,所述客户端11根据这个数据包的数据类型来执行对应的处理逻辑。
作为一种优选实施方式,所述服务端12在判断所述服务端cookie中的属性资料的更新时间标记大于所述标准更新时间标记时,进一步从所述服务端cookie中的各个属性资料的更新时间标记中,获取最大的更新时间标记作为所述标准更新时间标记,更新所述客户端11保存的标准更新时间标记。
亦即,在完成所述客户端cookie的更新之后,重新根据所述服务端cookie中的各个属性资料的更新时间标记中,最大的更新时间标记产生所述标准更新时间标记,发送至所述客户端11,更新所述客户端11保存的标准更新时间标记。
这样所述客户端11在下一次更新所述客户端cookie时,可以再次根据更新后的所述标准更新时间标记向服务端12请求更新数据,使每次客户端cookie的更新都只需要在客户端11和服务端12之间传输所述标准更新时间标记和需要更新的部分属性资料的更新数据,降低对下行数据通道的占用,提高客户端cookie更新效率。
本领域普通技术人员可以理解实现上述实施方式中的全部或部分流程,以及对应的控制系统,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各实施方式的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。