一种数据缓存方法及装置、电子设备与流程

文档序号:16881260发布日期:2019-02-15 22:10阅读:168来源:国知局
一种数据缓存方法及装置、电子设备与流程

本公开涉及通信技术,尤其涉及一种数据缓存方法及装置、电子设备和计算机可读存储介质。



背景技术:

目前常用的浏览器,例如谷歌浏览器(googlechrome)、火狐(firefox)、微软浏览器(internetexplorer)或苹果浏览器(safari)等都支持超文本传输协议(hypertexttransferprotocol,简称http)/1.1协议中的缓存处理,以达到节省带宽和提高访问速度的目的。

其中,标准的http/1.1协议有针对http请求缓存的处理逻辑,分别定义了上次修改(last-modified)、实体标签(entitytag,简称etag)、过期时间(expires)头信息来处理http请求最后更新时间、返回内容指纹、请求内容过期时间。

但是,传统的http协议提供的缓存处理方案存在以下两个问题:第一个问题是:传统的http协议基于统一资源定位符(uniformresourcelocator,url)维度进行缓存处理,只要url发生变化,缓存立即失效,第二个问题是:传统的http协议缓存的是请求的全部内容,对于部分内容变更,无法复用之前的数据。



技术实现要素:

有鉴于此,本公开提供一种数据缓存方法及装置、电子设备和计算机可读存储介质。

具体地,本公开是通过如下技术方案实现的:

根据本公开实施例的第一方面,提供一种数据缓存方法,所述方法包括:

从当前请求中获取至少一个与数据段对应的请求项;

在所述请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据;

向所述服务器发送添加有所述标识数据的请求项;

接收所述服务器根据所述请求项返回的最新数据或增量数据。

在一实施例中,所述方法还包括:

接收所述服务器根据所述请求项返回的数据无更新的信息。

在一实施例中,所述方法还包括:

在所述在所述请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据之前,确定客户端缓存有所述服务器上一次针对对应数据段返回的数据。

在一实施例中,所述方法还包括:

若确定客户端未缓存有所述服务器上一次针对对应数据段返回的数据,则向所述服务器发送请求项;

接收所述服务器为所述请求项包含的数据段返回的数据,并缓存所述数据及对应的数据段标识。

在一实施例中,所述当前请求包括当前http请求或当前传输控制协议(tcp)请求,所述标识数据包括上次修改、实体标签、过期时间和版本号中的一项或几项数据。

根据本公开实施例的第二方面,提供一种数据缓存装置,所述装置包括:

获取模块,用于从当前请求中获取至少一个与数据段对应的请求项;

添加模块,用于在所述获取模块获取的所述请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据;

发送模块,用于向所述服务器发送所述添加模块添加的所述标识数据后的所述请求项;

第一接收模块,用于接收所述服务器根据所述发送模块发送的所述请求项返回的最新数据或增量数据。

在一实施例中,所述装置还包括:

第二接收模块,用于接收所述服务器根据所述发送模块发送的所述请求项返回的数据无更新的信息。

在一实施例中,所述装置还包括:

确定模块,用于在所述添加模块在所述请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据之前,确定客户端缓存有所述服务器上一次针对对应数据段返回的数据。

在一实施例中,所述发送模块,还用于:

若所述确定模块确定客户端未缓存有所述服务器上一次针对对应数据段返回的数据,则向所述服务器发送请求项;

接收缓存模块,用于接收所述服务器为所述发送模块发送的所述请求项包含的数据段返回的数据,并缓存所述数据及对应的数据段标识。

在一实施例中,所述当前请求包括当前http请求或当前传输控制协议tcp请求,所述标识数据包括上次修改、实体标签、过期时间和版本号中的一项或几项数据。

根据本公开实施例的第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述数据缓存方法。

根据本公开实施例的第四方面,提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据缓存方法。

本公开实施例,通过从当前请求中获取至少一个与数据段对应的请求项,并在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据,然后向服务器发送添加有标识数据的请求项,并接收服务器根据请求项返回的最新数据或增量数据,可以支持单请求多数据段的数据缓存,从而达到增量更新的目的,进而可以节省服务器和客户端之间的带宽流量,提高服务器和客户端之间的通信速度。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是本公开一示例性实施例示出的一种数据缓存方法的流程图;

图2是本公开一示例性实施例示出的另一种数据缓存方法的流程图;

图3是本公开一示例性实施例示出的另一种数据缓存方法的流程图;

图4是本公开一示例性实施例示出的数据缓存装置所在电子设备的一种硬件结构图;

图5是本公开一示例性实施例示出的一种数据缓存装置的框图;

图6是本公开一示例性实施例示出的另一种数据缓存装置的框图;

图7是本公开一示例性实施例示出的另一种数据缓存装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

图1是本公开一示例性实施例示出的一种数据缓存方法的流程图,如图1所示,该方法包括:

步骤s101,从当前请求中获取至少一个与数据段对应的请求项。

其中,当前请求可以包括但不局限于当前http请求或当前传输控制协议(transmissioncontrolprotocol,简称tcp)请求。

在该实施例中,可以从当前请求中获取一个或多个请求项,其中,每个请求项可以与一个或多个数据段对应,每个请求项可以通过标识区分开。

步骤s102,在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据。

其中,标识数据是指能够通过标识进行区分的数据。

在该实施例中,标识数据可以包括但不局限于上次修改(last-modified)、实体标签(entitytag,简称etag)、过期时间(expires)和版本号(version)中的一项或几项数据。

在该实施例中,在执行步骤s102之前,可以先确定客户端缓存有服务器上一次针对对应数据段返回的数据,然后在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据。

步骤s103,向服务器发送添加有标识数据的请求项。

客户端例如浏览器在请求项中添加标识数据之后,可以向服务器发送添加有标识数据的请求项。

步骤s104,接收服务器根据请求项返回的最新数据或增量数据。

可选地,如图2所示,在步骤s103之后,该方法还可以包括:

步骤s105,接收服务器根据请求项返回的数据无更新的信息。

服务器在接收请求项之后,如果请求项中添加有last-modified信息,则可以将请求项中携带的last-modified信息与服务器上最新内容的修改时间进行对比,如果在上次请求返回的last-modified时间后无数据更新,则返回代码(code):304,以告诉客户端内容无更新,如果存在数据更新,则返回最新数据或增量数据。

服务器在接收请求项之后,如果请求项中添加有etag信息,则可以将请求项中携带的etag信息和服务器端最新内容的etag进行对比,若二者一致,则返回code:304,以告诉客户端数据无修改,如果二者不一致,则返回最新数据或增量数据。

服务器在接收请求项之后,如果请求项中添加有version信息,则可以将请求项中携带的version信息和服务器端最新内容的version信息进行对比,若二者一致,则返回code:304,以告诉客户端数据无修改,如果二者不一致,则返回最新数据或增量数据。

需要说明的是,服务器对其他标识数据的处理过程与上述过程类似,此处不详述。

由于该实施例中可以仅返回最新数据或增量数据,而不需要返回全部数据,因此可以节省服务器和客户端之间的带宽流量,提高服务器和客户端之间的通信速度。

上述实施例,通过从当前请求中获取至少一个与数据段对应的请求项,并在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据,然后向服务器发送添加有标识数据的请求项,并接收服务器根据请求项返回的最新数据或增量数据,可以支持支持单请求多数据段的数据缓存,从而达到增量更新的目的,进而可以节省服务器和客户端之间的带宽流量,提高服务器和客户端之间的通信速度。

图3是本公开一示例性实施例示出的另一种数据缓存方法的流程图,如图3所示,该方法可以包括:

步骤s301,从当前请求中获取至少一个与数据段对应的请求项。

其中,当前请求可以包括但不局限于当前http请求或当前传输控制协议(transmissioncontrolprotocol,简称tcp)请求。

在该实施例中,可以从当前请求中获取一个或多个请求项,其中,每个请求项可以与一个或多个数据段对应,每个请求项可以通过标识区分开。

步骤s302,确定客户端是否缓存有服务器上一次针对对应数据段返回的数据,若缓存有该数据,则执行步骤s303,若未缓存有该数据,则执行步骤s306。

步骤s303,在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据。

其中,标识数据是指能够通过标识进行区分的数据。

在该实施例中,标识数据可以包括但不局限于上次修改(last-modified)、实体标签(entitytag,简称etag)、过期时间(expires)和版本号(version)中的一项或几项数据。

步骤s304,向服务器发送添加有标识数据的请求项。

步骤s305,接收服务器根据上述请求项返回的最新数据或增量数据,操作结束。

在该实施例中,首先需要确定客户端是否缓存有服务器上一次针对对应数据段返回的数据,若缓存有对应的数据,则在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据,并向服务器发送添加有标识数据的请求项,使得服务器可以根据该标识数据在确定数据存在更新时,返回最新数据或增量数据。

由于该实施例中可以仅返回最新数据或增量数据,而不需要返回全部数据,因此可以节省服务器和客户端之间的带宽流量,提高服务器和客户端之间的通信速度。

步骤s306,向服务器发送请求项,接收服务器为上述请求项包含的数据段返回的数据,并缓存上述数据及对应的数据段标识。

其中,缓存数据可以通过数据段标识进行区分,例如,在多个http请求中,只要数据段标识一致,就可以做到缓存共享,而不会受限于同一url,即该实施例可以支持跨url之间的数据缓存,同时也可以做到更新部分缓存。

在该实施例中,在客户端未缓存有服务器上一次针对对应数据段返回的数据时,可以直接向服务器发送请求项,接收服务器为该请求项包含的数据段返回的数据,并缓存数据及对应的数据段标识,从而为后续向服务器发送添加有标识数据的请求项以及接收服务器根据添加有标识数据的请求项返回的最新数据或增量数据提供了条件。

上述实施例,通过在确定客户端缓存有服务器上一次针对对应数据段返回的数据,在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据,并向服务器发送包含标识数据的请求项,以接收服务器根据数据标识返回的最新数据或增量数据,以支持支持单请求多数据段的数据缓存,从而达到增量更新的目的,进而可以节省服务器和客户端之间的带宽流量,提高服务器和客户端之间的通信速度;而在确定客户端未缓存有服务器上一次针对对应数据段返回的数据时,直接向服务器发送请求项,以接收服务器返回的数据,从而为后续向服务器发送添加有标识数据的请求项以及接收服务器根据添加有标识数据的请求项返回的最新数据或增量数据提供了条件。

与前述数据缓存方法的实施例相对应,本公开还提供了数据缓存装置的实施例。

本公开数据缓存装置的实施例可以应用在电子设备上。其中,该电子设备可以为客户端所在的设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。如图4所示,为本公开数据缓存装置400所在电子设备的一种硬件结构图,该电子设备包括处理器410、存储器420及存储在存储器420上并可在处理器410上运行的计算机程序,该处理器410执行该计算机程序时实现上述数据缓存方法。除了图4所示的处理器410及存储器420之外,实施例中装置所在的电子设备通常根据该数据缓存的实际功能,还可以包括其他硬件,对此不再赘述。

图5是本公开一示例性实施例示出的一种数据缓存装置的框图,如图5所示,该数据缓存装置包括:获取模块51、添加模块52、发送模块53和第一接收模块54。

获取模块51用于从当前请求中获取至少一个与数据段对应的请求项。

其中,当前请求可以包括但不局限于当前http请求或传输控制协议(transmissioncontrolprotocol,简称tcp)请求。

在该实施例中,可以从当前请求中获取一个或多个请求项,其中,每个请求项可以与一个或多个数据段对应,每个请求项可以通过标识区分开。

添加模块52用于在获取模块51获取的请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据。

其中,标识数据是指能够通过标识进行区分的数据。

在该实施例中,标识数据可以包括但不局限于上次修改(last-modified)、实体标签(entitytag,简称etag)、过期时间(expires)和版本号(version)中的一项或几项数据。

在该实施例中,在执行步骤s102之前,可以先确定客户端缓存有服务器上一次针对对应数据段返回的数据,然后在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据。

发送模块53用于向服务器发送添加模块52添加的标识数据后的请求项。

添加模块在请求项中添加标识数据之后,可以向服务器发送添加有标识数据的请求项。

第一接收模块54用于接收服务器根据发送模块53发送的请求项返回的最新数据或增量数据。

服务器在接收请求项之后,如果请求项中添加有last-modified信息,则将请求项中携带的last-modified信息与服务器上最新内容的修改时间进行对比,如果在上次请求返回的last-modified时间后无数据更新,则返回代码(code):304,以告诉客户端内容无更新,如果存在数据更新,则返回最新数据或增量数据。

服务器在接收请求项之后,如果请求项中添加有etag信息,则将请求项中携带的etag信息和服务器端最新内容的etag进行对比,若二者一致,则返回code:304,以告诉客户端数据无修改,如果二者不一致,则返回最新数据或增量数据。

服务器在接收请求项之后,如果请求项中添加有version信息,则可以将请求项中携带的version信息和服务器端最新内容的version信息进行对比,若二者一致,则返回code:304,以告诉客户端数据无修改,如果二者不一致,则返回最新数据或增量数据。

需要说明的是,服务器对其他标识数据的处理过程与上述过程类似,此处不详述。

由于该实施例中可以仅返回最新数据或增量数据,而不需要返回全部数据,因此可以节省服务器和客户端之间的带宽流量,提高服务器和客户端之间的通信速度。

上述实施例,通过从当前请求中获取至少一个与数据段对应的请求项,并在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据,然后向服务器发送添加有标识数据的请求项,并接收服务器根据上述请求项返回的最新数据或增量数据,以支持单请求多数据段的数据缓存,从而达到增量更新的目的,进而可以节省服务器和客户端之间的带宽流量,提高服务器和客户端之间的通信速度。

图6是本公开一示例性实施例示出的另一种数据缓存装置的框图,如图6所示,在上述图5所示实施例的基础上,该数据缓存装置还可以包括:第二接收模块55。

第二接收模块55,用于接收服务器根据发送模块53发送的请求项返回的数据无更新的信息。

其中,缓存数据可以通过数据段标识进行区分,例如,在多个http请求中,只要数据段标识一致,就可以做到缓存共享,而不会受限于同一url,即该实施例可以支持跨url之间的数据缓存,同时也可以做到更新部分缓存。

在该实施例中,首先需要确定客户端是否缓存有服务器上一次针对对应数据段返回的数据,若未缓存有对应的数据,则直接向服务器发送请求项,接收服务器为该请求项包含的数据段返回的数据,并缓存数据及对应的数据段标识,从而为后续向服务器发送添加有标识数据的请求项以及接收服务器根据添加有标识数据的请求项返回的最新数据或增量数据提供了条件。

上述实施例,通过在确定客户端未缓存有服务器上一次针对对应数据段返回的数据时,直接向服务器发送请求项,以接收并缓存服务器返回的数据,从而为后续向服务器发送添加有标识数据的请求项以及接收服务器根据添加有标识数据的请求项返回的最新数据或增量数据提供了条件。

图7是本公开一示例性实施例示出的另一种数据缓存装置的框图,如图7所示,在上述图5所示实施例的基础上,该数据缓存装置还可以包括:确定模块56。

确定模块56用于在添加模块52在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据之前,确定客户端缓存有服务器上一次针对对应数据段返回的数据。

上述实施例,通过确定客户端缓存有服务器上一次针对对应数据段返回的数据时,在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据,从而为后续向服务器发送添加有标识数据的请求项以及接收服务器根据添加有标识数据的请求项返回的最新数据或增量数据提供了条件。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序用于执行上述数据缓存方法,其中,该数据缓存方法包括:

从当前请求中获取至少一个与数据段对应的请求项;

在请求项包含的数据段中添加服务器上一次针对对应数据段返回的数据中的标识数据;

向服务器发送添加有标识数据的请求项;

接收服务器根据请求项返回的最新数据或增量数据。

上述计算机可读存储介质可以是只读存储器(rom)、随机存取存储器(ram)、光盘只读存储器(cd-rom)、磁带、软盘和光数据存储设备等。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1