文件流的处理、提供方法、客户端及服务器与流程

文档序号:17125748发布日期:2019-03-16 00:24阅读:217来源:国知局
文件流的处理、提供方法、客户端及服务器与流程

本说明书一个或多个实施方式涉及互联网技术领域,特别涉及一种文件流的处理、提供方法、客户端及服务器。



背景技术:

当前,在通过浏览器浏览网站页面时,网站页面中展示的页面资源可能存储在网站服务器中或者存储于内容分发网络(contentdeliverynetwork,cdn)中。这样,浏览器则需要从网站服务器或者cdn中获取相应的页面资源,在获取了页面资源后便可以在当前页面中进行渲染。

目前,在获取页面资源时,浏览器通常是基于页面资源的下载地址,从服务器处进行下载。在下载时,浏览器通常可以对当前页面中所需展示的页面资源进行整体下载。在将当前页面中所需展示的页面资源整体下载后,可以保存至本地,以供后续使用。

为了保证从服务器处下载至本地的页面资源是完好的,当前需要一种对下载的页面资源进行校验的方法。



技术实现要素:

本说明书一个或多个实施方式的目的是提供一种文件流的处理、提供方法、客户端及服务器,能够对下载的文件流进行校验。

为实现上述目的,本说明书一个或多个实施方式提供一种文件流的处理方法,所述方法包括:向业务服务器发送指向目标页面的访问请求,并接收所述业务服务器反馈的包含页面资源标识的数据集;从资源服务器中获取所述页面资源标识对应的文件流;所述文件流中包括页面资源的标准校验码和页面资源的数据;根据所述页面资源的数据计算目标校验码,并将所述目标校验码与所述标准校验码进行对比;根据对比结果,对所述文件流进行处理。

为实现上述目的,本说明书一个或多个实施方式还提供一种客户端,所述客户端包括:网络通信端口、存储器以及处理器,其中:所述网络通信端口,用于与业务服务器以及资源服务器进行数据交互;所述存储器,用于存储所述业务服务器反馈的数据集以及存储所述资源服务器发来的文件流;所述处理器,用于控制所述网络通信端口向所述业务服务器发送指向目标页面的访问请求,并通过所述网络通信端口接收所述业务服务器反馈的包含页面资源标识的数据集;从所述资源服务器中获取所述页面资源标识对应的文件流;所述文件流中包括页面资源的标准校验码和页面资源的数据;根据所述页面资源的数据计算目标校验码,并将所述目标校验码与所述标准校验码进行对比;根据对比结果,对所述文件流进行处理。

为实现上述目的,本说明书一个或多个实施方式还提供一种文件流的提供方法,所述方法包括:接收客户端发来的指向目标页面的访问请求;响应于所述访问请求,向所述客户端反馈包含页面资源标识的数据集,以使得所述客户端从资源服务器中获取所述页面资源标识对应的文件流;所述文件流中包括页面资源的标准校验码和页面资源的数据;其中,根据所述页面资源的数据计算得到的目标校验码与所述标准校验码之间的对比结果限定所述客户端对所述文件流的处理方式。

为实现上述目的,本说明书一个或多个实施方式还提供一种服务器,所述服务器包括网络通信端口、存储器及处理器,其中:所述网络通信端口,用于与客户端进行数据交互;所述存储器,用于存储包含页面资源标识的数据集;所述处理器,用于通过所述网络通信端口接收所述客户端发来的指向目标页面的访问请求;响应于所述访问请求,控制所述网络通信端口向所述客户端反馈包含页面资源标识的数据集,以使得所述客户端从资源服务器中获取所述页面资源标识对应的文件流;所述文件流中包括页面资源的标准校验码和页面资源的数据;其中,根据所述页面资源的数据计算得到的目标校验码与所述标准校验码之间的对比结果限定所述客户端对所述文件流的处理方式。

由上可见,本说明书一个或多个实施方式提供的技术方案,客户端在获取到服务器提供的文件流之后,在该文件流中可以包含页面资源的标准校验码。该标准校验码可以作为衡量下载的文件流是否完好的依据。在对下载的文件流进行校验时,可以提取其中的页面资源的数据,并根据哈希算法对页面资源的数据进行计算,从而可以得到下载的页面资源的数据对应的目标校验码。如果目标校验码与标准校验码一致,则表明客户端下载的文件流与服务器中存储的文件流是一致的;而如果目标校验码与标准校验码不一致,则表明下载的文件流可能出现了损坏。这样,本说明书一个或多个实施方式提供的技术方案,能够对下载的文件流进行校验,并根据校验的结果,可以对下载的文件流进行存储或者重新下载的处理。

附图说明

为了更清楚地说明本说明书一个或多个实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书一个实施方式中客户端和服务器的交互示意图;

图2为本说明书一个实施方式中客户端、代理服务器和网站服务器的交互示意图;

图3为本说明书一个实施方式中文件流的处理方法流程图;

图4为本说明书一个实施方式中页面资源下载的交互示意图;

图5为本说明书一个实施方式中本地校验示意图;

图6为本说明书一个实施方式中本地存储示意图;

图7为本说明书一个应用场景中的架构示意图;

图8为本说明书一个实施方式中客户端的结构示意图;

图9为本说明书一个实施方式中文件流的提供方法流程图;

图10为本说明书一个实施方式中服务器的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书一个或多个实施方式中的技术方案,下面将结合本说明书一个或多个实施方式的附图,对本说明书一个或多个实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本说明书中的一部分实施方式,而不是全部的实施方式。基于本说明书一个或多个实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都应当属于本说明书一个或多个实施方式保护的范围。

本说明书一个或多个实施方式提供一种文件流的处理方法以及一种文件流的提供方法,上述的方法可以应用于客户端和服务器的架构中。其中,所述客户端可以是具备网络通信功能和数据显示功能的电子设备。例如,所述客户端可以是台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备、导购终端、智能电视机等电子设备。所述客户端也可以为运行于上述电子设备中的软件。具体的,所述客户端可以为电子设备中的浏览器,所述浏览器中可以加载目标页面的访问地址。所述客户端还可以为在智能终端中运行的应用。例如,所述应用可以为携程旅行、手机途牛、手机京东等。

在本说明一个或多个实施方式中,所述业务服务器可以是所述客户端访问的目标页面对应的网站服务器。例如,所述业务服务器可以是京东商城的网站服务器。当客户端访问京东商城中的页面时,便可以与京东商城的网站服务器进行数据交互。请参阅图1,在本说明书一个实施方式中,在客户端中可以输入目标页面的页面地址,这样,所述客户端便可以向该目标页面对应的网站服务器发出访问请求。在该网站服务器中,可以具备网站中页面的源码数据以及页面中所需加载的页面资源的下载地址。其中,所述源码数据可以是网站的开发人员编辑的用于展示页面内容的代码。在所述源码数据中,可以包括表征页面框架的代码,还可以包括表征页面中展示的文字的代码,还可以包括表征页面中展示的图片、音频、视频的代码。需要说明的是,由于图片、音频、视频的数据量相对较大,在页面的源码数据中,通常包含的是图片、音频、视频的下载地址。这样,当客户端解析至该下载地址时,可以通过该下载地址获取相应的图片、音频、视频。在本实施方式中,所述页面中所需加载的页面资源可以是存储于所述网站服务器或者其它服务器中的数据。例如,所述页面资源可以是图片、音频、视频、页面框架等数据。所述页面资源的数据量通常较大,因此所述页面资源通常不包含于所述源码数据中,在所述源码数据中往往包含所述页面资源的下载地址。在本实施方式中,网站的开发人员在编辑页面时,通常会设定页面中所需加载的页面资源的页面资源标识。所述页面资源标识可以是上述的下载地址,也可以是用于表征所述下载地址的符号,该符号与下载地址之间通常会存在映射关系,这样,通过该符号便可以获取到页面资源的下载地址。这样,页面与该页面中所需展示的页面资源的页面资源标识之间便可以存在关联关系,与页面相关联的页面资源标识也可以存储于网站服务器中。这样,当客户端向网站服务器发送针对目标页面的访问请求时,该网站服务器便可以将该目标页面的源码数据以及相关联的页面资源标识一并反馈给客户端。

在本说明书另一个实施方式中,所述业务服务器可以是代理服务器。请参阅图2,该代理服务器可以介于客户端与网站服务器之间,客户端与网站服务器之间交互的数据通常可以经过该代理服务器进行转发。在本实施方式中,所述网站服务器中可以存储网站中页面的源码数据,而所述代理服务器中则可以存储与各个页面相关联的页面资源标识。具体地,客户端向外发出的访问请求通常都会发送至所述代理服务器,然后由该代理服务器转发至对应的网站服务器,那么在所述代理服务器中可以备份客户端的访问历史。这样,代理服务器可以根据本地存储的访问历史,模拟浏览器访问目标页面的过程,从而可以从网站服务器处获取目标页面的源码数据。进一步地,代理服器可以模拟浏览器对目标页面的渲染行为,对源码数据进行解析,从而可以提取所述源码数据中包含的各个页面资源标识。在提取到源码数据中的页面资源标识后,代理服务器便可以将所述页面资源标识存储于本地,并将所述页面资源标识与所述目标页面建立关联关系。在实际应用中,所述代理服务器可以按照固定的时间周期,周期性地模拟对所述目标页面的访问行为,从而保持本地存储的页面资源标识的准确性和完备性。这样,当再次接收到访问该目标页面的访问请求时,便可以向访问请求的发起方反馈该目标页面关联的页面资源标识。同时,代理服务器可以将该访问请求转发至对应的网站服务器,从而可以从网站服务器处获取目标页面的源码数据,从而可以将获取的源码数据也反馈给访问请求的发起方。

上述的网站服务器和代理服务器均可以作为本说明书中的业务服务器。以下如果没有特指服务器的类型,那么出现的服务器均可以指所述业务服务器。

在本说明书的一个或者多个实施方式中,除了客户端和业务服务器,还可以包括资源服务器。所述资源服务器可以与存储页面资源的源服务器相连。当所述客户端接收到页面资源标识后,可以将所述页面资源标识发送至所述资源服务器处,从而从所述资源服务器处获取对应的页面资源。所述资源服务器可以记录客户端之前发来的各个页面资源标识,并且在下载了对应的页面资源后,将页面资源存储于资源服务器本地。这样,如果客户端发送的页面资源标识对应的页面资源已经在资源服务器中存储,那么资源服务器便可以直接将对应的页面资源反馈给客户端,无需再向源服务器进行页面资源请求。当然,为了保持资源服务器中页面资源的准确性,资源服务器可以按照固定周期从源服务器中更新对应的页面资源。客户端可以预先设定所述资源服务器对应的接口,这样,在需要下载页面资源时,便可以通过该接口向资源服务器发送所需下载的页面资源的标识。

需要说明的是,上述的服务器可以为具有数据运算、存储功能以及网络交互功能的电子设备;也可以为运行于该电子设备中为数据处理、存储和网络交互提供支持的软件。在本实施方式中并不具体限定服务器的数量。服务器可以为一个服务器,还可以为若干服务器形成的服务器集群。

本说明的一个实施方式提供一种文件流的处理方法,所述处理方法的执行主体可以是上述的客户端。所述文件流可以指由指定数量个字段构成的数据,其中,所述指定数量个字段按照排列顺序依次进行传输。例如,在所述文件流中,可以包括第一字段、第二字段以及第三字段。其中,所述第一字段中的数据可以用于表征第二字段中数据的长度。在接收到该文件流之后,通过读取第一字段中的数据,从而可以获知第二字段中数据的长度。根据获知的长度,便可以准确地读取第二字段中的数据。所述第三字段中可以包括至少一个资源数据。所述资源数据可以表示页面资源的详细信息。例如,所述资源数据中可以包括页面资源的二进制代码,该二进制代码被客户端解析之后便可以渲染为需要展示的页面资源。所述第二字段中的数据可以用于表征第三字段中资源数据对应的属性信息。所述属性信息可以包括资源数据的长度、资源数据表征的页面资源的类型、资源数据对应的页面资源标识、资源数据对应的校验码等。所述第二字段中的内容可以显示为一个数组,数组中的一项便可以代表一个资源数据对应的属性信息。

请参阅图3,所述方法可以包括以下步骤s11、s13、s15以及s17。

s11:向业务服务器发送指向目标页面的访问请求,并接收所述业务服务器反馈的包含页面资源标识的数据集。

在本实施方式中,所述访问请求可以是用户在浏览器的访问地址栏中输入所述目标页面的访问地址后形成的,也可以是用户在当前页面中点击了所述目标页面的链接后形成的。所述访问请求可以是按照预设规则进行编写的字符串。其中,所述预设规则可以是所述客户端与所述业务服务器之间遵循的网络通信协议。例如,所述访问请求可以是按照http协议进行编写的字符串。所述预设规则可以限定访问请求中的各个组成部分以及各个组成部分之间的排列顺序。例如,所述访问请求中可以包括请求标识字段、源ip地址字段以及目的ip地址字段。所述请求标识字段可以填充所述目标页面的url(uniformresourcelocator,统一资源定位符)。所述源ip地址字段可以填写所述客户端的ip地址,所述目标ip地址字段可以填写所述业务服务器的ip地址。这样,所述访问请求便可以从所述客户端发送至所述业务服务器处。

在本实施方式中,所述访问请求指向目标页面可以表示所述访问请求中包括所述目标页面的标识。所述目标页面的标识可以是所述目标页面在业务服务器中预先被分配的字符,也可以是所述目标页面在网络中的下载地址。例如,所述目标页面的标识可以为http://news.baidu.com/ns?cl=2&rn=20&tn=news&word=css%d7%ca%d4%b4。

在本说明书一个实施方式中,所述业务服务器可以是介于所述客户端和网站服务器之间的代理服务器。从客户端发往所述网站服务器的访问请求通常可以先发送至所述代理服务器处,然后由所述代理服务器转发至网站服务器。在本实施方式中,发往所述网站服务器的访问请求通常具备指定类型。例如,所述指定类型可以是html类型。那么,在本实施方式中,可以拦截向外发出的访问请求,并判断所述访问请求的类型。具体地,在客户端向外发出访问请求时,可以先由客户端本地的程序模块对即将发出的访问请求进行拦截,并对所述访问请求的类型进行判断。所述程序模块可以是在所述客户端中预先编辑的代码段。当所述客户端中产生访问请求,并调用客户端的网络通信端口准备发送该访问请求时,所述代码段可以被触发执行,从而将该访问请求拦截。在拦截之后,该程序模块可以识别所述访问请求的头文件,从而判断该访问请求的类型是否为指定类型。如果是指定类型,那么可以通过客户端将该访问请求发送至所述代理服务器处。这样处理的目的在于,当所述访问请求为指定类型的访问请求时,表明此时客户端需要从网站服务器处获取页面的源码数据,以在客户端本地对源码数据进行解析并渲染出需要访问的页面。这样,该访问请求被拦截后发送至代理服务器,代理服务器从而可以向客户端反馈与访问的页面相关联的页面资源标识,以使得所述客户端在解析源码数据时,或者在解析源码数据之前,根据页面资源标识预先将该访问的页面所需的页面资源下载至本地。

在本实施方式中,所述业务服务器在接收到客户端发来的访问请求后,可以将该访问请求指向的目标页面的源码数据以及页面资源标识均反馈给所述客户端。其中,所述业务服务器向所述客户端反馈数据时,可以分别反馈第一数据集和第二数据集。其中,所述第一数据集中可以包括所述目标页面的源码数据,而所述第二数据集中可以包括从所述源码数据中提取的页面资源标识。

在本实施方式中,所述业务服务器可以是网站服务器。那么所述源码数据可以是网站的开发人员编辑的用于展示网站页面内容的代码。在所述源码数据中,可以包括表征页面框架的代码,还可以包括表征页面中展示的文字的代码,还可以包括表征页面中展示的图片、音频、视频的代码。需要说明的是,由于图片、音频、视频的数据量相对较大,在页面的源码数据中,通常包含的是图片、音频、视频的下载地址。这样,当客户端解析至该下载地址时,可以通过该下载地址获取相应的图片、音频、视频。在本实施方式中,所述页面中所需加载的页面资源可以是存储于所述网站服务器或者其它服务器中的数据。例如,所述页面资源可以是图片、音频、视频、页面框架等数据。所述页面资源的数据量通常较大,因此所述页面资源通常不包含于所述源码数据中,在所述源码数据中往往包含所述页面资源的下载地址。在本实施方式中,网站的开发人员在编辑页面时,通常会设定页面中所需加载的页面资源的页面资源标识。所述页面资源标识可以是上述的下载地址,也可以是用于表征所述下载地址的符号,该符号与下载地址之间通常会存在映射关系,这样,通过该符号便可以获取到页面资源的下载地址。

在本实施方式中,所述业务服务器还可以是代理服务器,那么在所述代理服务器接收到所述访问请求后,可以将该访问请求转发至网站服务器处,以从网站服务器处获取该访问请求指向的目标页面的源码数据。此外,在所述代理服务器中,可以预先存储从所述源码数据中提取的页面资源标识。具体地,代理服务器可以接收来自各个客户端的访问请求,这些访问请求均可以作为历史数据存储于代理服务器中。随着历史访问请求数量的积累,代理服务器中存储的访问请求中可以包含指向所述目标页面的访问请求。这样,代理服器可以预先模拟浏览器对目标页面的渲染行为,对源码数据进行解析,从而可以提取所述源码数据中包含的各个页面资源标识。在提取到源码数据中的页面资源标识后,代理服务器便可以将所述页面资源标识存储于本地,并将所述页面资源标识与所述目标页面建立关联关系。这样,当代理服务器接收到所述访问请求后,可以将本地存储的与所述目标页面相关联的页面资源标识反馈给客户端。

在本说明书一个实施方式中,考虑到目标页面的源码数据的数据量比较大,如果客户端等待源码数据全部接收完成后再进行解析,则会导致目标页面的加载速度较慢。基于此,在所述业务服务器接收到所述访问请求之后,可以在所述业务服务器和所述客户端之间可以建立长连接。所述长连接可以指在一个连接上,可以持续发送多个数据包。这样,业务服务器在向客户端反馈第一数据集和第二数据集时,每次可以仅反馈数据集中的一部分数据。这样,客户端可以在接收到一部分数据的情况下便开始进行页面资源下载和源码数据解析的流程,此后便可以一边通过长连接接收所述业务服务器反馈的所述第一数据集和所述第二数据集,一边对已经接收到的数据进行处理,从而能够提高页面加载的速度。

s13:从资源服务器中获取所述页面资源标识对应的文件流;所述文件流中包括页面资源的标准校验码和页面资源的数据。

在本实施方式中,客户端在获取到所述业务器反馈的页面资源标识后,可以将所述页面资源标识指向的页面资源加载至本地。具体地,加载页面资源的方式可以包括从存储所述页面资源的源服务器处下载所述页面资源。所述源服务器可以是独立的服务器,也可以是服务器集群。例如,所述源服务器中可以存储完整的页面资源,那么客户端直接从所述源服务器处获取该完整的页面资源。又例如,所述源服务器可以是分布式的服务器集群,一个页面资源可以被分割为多个数据块,分别存储于该服务器集群中的不同服务器上。这样,根据所述页面资源的页面资源标识,客户端可以访问该服务器集群,并从存储有该页面资源的数据块的服务器中分别获取各个数据块,从而可以得到完整的页面资源。

在本说明书的一个实施方式中,加载页面资源的方式还可以包括判断在本地是否已存储有所述页面资源标识指向的页面资源;若未存储,将所述页面资源标识指向的页面资源加载至本地。在本实施方式中,考虑到客户端在之前可能已经访问过所述目标页面,并且所述目标页面中的部分页面资源已经存储于客户端本地。这样,客户端在接收到服务器反馈的页面资源标识后,可以针对本地当前还未存储的页面资源进行下载,对于已经在本地存储的页面资源则可以不必下载,从而节省下载页面资源所需的时间。

在本实施方式中,所述客户端的本地可以指客户端的缓存。在实际应用中,所述缓存可以划分为内存级别缓存和存储介质级别缓存。所述内存级别缓存可以是客户端的中央处理器自带的缓存,该缓存的空间通常较小,但读取速度较快。所述存储介质级别缓存则可以是所述客户端通过存储器接口接入的缓存。例如,所述存储介质级别缓存可以是sd(securedigitalcard,安全数据卡)缓存或者microsd(微型安全数据卡)缓存。所述存储介质级别缓存可以具备较大的存储空间,但读取速度相对于内存级别缓存较慢。

在本实施方式中,加载至客户端本地的页面资源可以通过键值对(key-value)的形式进行存储。其中,页面资源标识可以作为key,被存储于内存级别缓存中,页面资源标识对应的页面资源则可以作为value,被存储于存储介质级别缓存中。这样,当客户端接收到服务器发来的页面资源标识后,便可以在内存级别缓存中检索是否存在所述页面资源标识,如果存在则不进行下载,如果不存在则进行下载。下载页面资源之后,可以将页面资源写入存储介质级别缓存中,并在内存级别缓存中建立对应的key作为该页面资源的索引项。

请参阅图4,在本说明书的一个实施方式中,所述客户端还可以与资源服务器相连。所述资源服务器可以与存储页面资源的源服务器相连。当所述客户端接收到页面资源标识后,可以将所述页面资源标识发送至所述资源服务器处,从而从所述资源服务器处获取对应的页面资源。所述资源服务器可以记录客户端之前发来的各个页面资源标识,并且在下载了对应的页面资源后,将页面资源存储于资源服务器本地。这样,如果客户端发送的页面资源标识对应的页面资源已经在资源服务器中存储,那么页面资源服务器便可以直接将对应的页面资源反馈给客户端,无需再向源服务器进行页面资源请求。当然,为了保持资源服务器中页面资源的准确性,资源服务器可以按照固定周期从源服务器中更新对应的页面资源。客户端可以预先设定所述资源服务器对应的接口,这样,在需要下载页面资源时,便可以通过该接口向资源服务器发送所需下载的页面资源的标识。

在本实施方式中,在客户端与源服务器之间采用资源服务器的目的在于,资源服务器在向客户端反馈页面资源时,可以将页面资源的格式转换为自定义的数据流格式。这样,客户端从资源服务器处下载的页面资源均可以是具备自定义的数据流格式的文件流。请参阅表1,所述自定义的数据流格式中,可以包括第一字段、第二字段以及第三字段;其中,所述第一字段中的数据用于表征第二字段中数据的长度。这样,客户端在接收到该数据流之后,通过读取第一字段中的数据,从而可以获知第二字段中数据的长度,从而可以根据获知的长度,准确地读取第二字段中的数据。在实际应用场景中,所述第一字段中可以包括固定字节的数据,该固定字节的数据可以是一个int类型的值,用于表征第二字段中数据的长度。

表1自定义的数据流格式

在本实施方式中,所述第三字段中可以包括至少一个页面资源的数据,每个页面资源的数据可以作为一个流数据。这样,一个流数据便可以代表一个页面资源的详细信息。例如,所述流数据中可以包括页面资源的二进制代码,该二进制代码被客户端解析之后便可以渲染为需要展示的页面资源。所述第二字段中的数据可以用于表征第三字段中流数据对应的属性信息。所述属性信息可以包括流数据的长度、流数据表征的页面资源的类型、流数据对应的页面资源标识、流数据对应的校验码等。所述第二字段中的内容可以显示为一个数组,数组中的一项便可以代表一个流数据对应的属性信息。

s15:根据所述页面资源的数据计算目标校验码,并将所述目标校验码与所述标准校验码进行对比;

s17:根据对比结果,对所述文件流进行处理。

在本实施方式中,客户端加载至本地的页面资源可以具备上述的自定义的数据流格式。采用该自定义的数据流格式的有益之处在于,客户端可以方便地对本地的页面资源进行校验。在所述自定义的数据流格式的第二字段中,可以包括表征页面资源的数据流的校验码,那么当客户端从资源服务器处获取页面资源后,可以根据第三字段中的流数据,分别计算出各个流数据对应的校验码。计算所述校验码的方式可以是采用哈希算法进行计算,从而可以得到所述流数据的md5码。所述第二字段中的校验码也可以是md5码。那么客户端可以比对根据流数据计算出的校验码是否与第二字段中记录的该流数据对应的校验码一致,如果一致,则表明下载的流数据没有出错,客户端本地的页面资源与资源服务器中的页面资源相同。如果不一致,则表明下载的流数据出错,从而可以重新从资源服务器中获取该出错的页面资源,直至校验码一致为止。

在本实施方式中,当客户端将页面资源加载至本地之后,还可以对本地存储的页面资源进行持续的校验。具体的校验时机例如可以是客户端启动时,或者按照客户端设定的固定周期进行校验。校验的方式还是将第二字段中的校验码与第三字段中流数据计算得到的校验码进行比对。这样校验的有益效果在于,一旦客户端本地的页面资源出现损坏或者被改动,那么就会导致两个校验码不一致,从而使得客户端重新从资源服务器处获取出现损坏或者被改动的页面资源。

这样,在本实施方式中,当所述目标校验码与所述标准校验码一致时,将所述页面资源标识对应的文件流存储于本地;当所述目标校验码与所述标准校验码不一致时,重新从所述资源服务器获取所述页面资源标识对应的文件流。

在本实施方式中,客户端在接收到服务器反馈的源码数据后,可以对该源码数据进行解析。在解析源码数据时,客户端可以将解析得到的页面框架、文字等信息在当前页面中进行渲染。但是对于页面资源而言,在源码数据中通常仅包含页面资源标识,而不包含页面资源的实际数据。因此,在解析得到目标页面资源的目标标识时,需要获取所述目标标识指向的目标页面资源。

在本实施方式中,由于客户端已经将对应的页面资源加载至本地,因此可以从本地获取所述目标标识指向的目标页面资源,并在当前页面中展示所述目标页面资源。

在本说明书一个实施方式中,在将所述页面资源标识指向的页面资源加载至本地后,所述页面资源在客户端本地通常会具备存储路径。为了能够快速地根据页面资源标识查询到该页面资源在客户端本地存储的路径,可以在所述页面资源标识和所述页面资源在本地的存储路径之间建立关联关系。具体地,所述关联关系可以通过数据表的形式来实现。在所述数据表中可以包括各个页面资源的索引信息。所述索引信息中可以包括多个字段。例如,所述索引信息中可以包括页面资源标识字段、页面资源类型字段、页面资源的本地存储路径字段等。这样,记录于同一条索引信息中的各个字段中包含的内容便可以构成关联关系。

在本实施方式中,在建立了页面资源标识和本地存储路径之间的关联关系之后,当需要从本地获取目标标识指向的目标页面资源时,便可以确定所述目标标识关联的本地的目标存储路径,并从所述目标存储路径处读取目标页面资源。例如,根据所述目标标识,可以在数据表中查询到包含所述目标标识的索引信息。然后客户端可以读取该索引信息中各个字段的内容,从而可以将页面资源的本地存储路径字段中记录的存储路径作为所述目标标识关联的本地的目标存储路径。这样,客户端便可以从所述目标存储路径处读取对应的目标资源标识。

在本说明书的一个实施方式中,服务器反馈给客户端的资源标识可能并不完备,这就导致客户端在解析源码数据,得到目标页面资源的目标标识后,该目标标识可能不包含在之前服务器反馈的页面资源标识中。这样,在本地便不存在所述目标标识指向的目标页面资源。此时,客户端可以根据所述目标标识从存储所述目标页面资源的源服务器处获取所述目标页面资源。在获取所述目标页面资源后,为了使得服务器中针对该目标页面的页面资源标识能够完备,客户端可以将所述目标标识发送至所述业务服务器,以使得所述业务服务器存储所述目标标识并将所述目标标识与所述目标页面进行关联。这样,当再次向所述业务服务器发送指向所述目标页面的访问请求时,服务器在向访问请求发起方反馈包含所述目标页面的源码数据的第一数据集的同时,可以将添加了所述目标标识的第三数据集也反馈给访问请求的发起方。这样,访问请求的发起方接收到的所述业务服务器反馈的所述第一数据集和第三数据集中,所述第三数据集可以包括所述第二数据集中的页面资源标识和所述目标标识。这样,通过各个客户端不断地对服务器中遗漏的页面资源标识进行上报,从而使得服务器中的页面资源标识越来越完备。

在本说明书一个实施方式中,在客户端内还可以设置用于拦截页面资源标识的程序模块。具体地,当客户端从源码数据中解析到目标标识后,该程序模块会拦截所述目标标识。拦截所述目标标识的目的在于优先从客户端本地查询是否存在所述目标标识指向的目标页面资源。具体查询目标页面资源的方式可以如以上实施方式所述。如果查询得到对应的目标页面资源,则可以将该目标页面资源反馈给客户端中用于渲染所述目标页面的组件。例如可以将所述目标页面资源反馈给浏览器组件。如果在本地没有查询到对应的目标页面资源,该程序模块便可以不反馈数据或者反馈空数据。此时,客户端便可以从存储目标页面资源的源服务器处获取该目标页面资源。

在本说明书的一个实施方式中,客户端在被用户使用过程中,内部存储的数据可能会发生变化。例如,在本地存储的页面资源可能会被修改或者删除,页面资源对应的页面资源标识也可能会被修改或者删除。当客户端本地的页面资源标识与页面资源不是一一对应时,便可以会出错。例如,客户端解析源码数据得到页面资源标识后,该页面资源标识在缓存中是存在的,但其对应的页面资源已经被删除了。此时,客户端有可能从缓存中读取错误的页面资源,或者会重复尝试读取该页面资源标识对应的页面资源。这样,便会使得目标页面展示出错或者降低目标页面加载的速度。基于此,在本实施方式中,可以定期对本地存储的页面资源标识和页面资源进行校验。请参阅图5,可以在客户端启动时开始校验,或者可以按照客户端设置的固定周期进行校验。在进行校验时,客户端可以读取本地存储的页面资源标识,并判断所述页面资源标识在本地是否存在对应的页面资源。若不存在,则可以将所述页面资源标识从本地删除。若存在,则可以进一步地对所述页面资源标识指向的页面资源进行校验。具体地,所述页面资源可以按照表1所示的格式进行编辑,此时可以读取第二字段中所述页面资源对应的标准校验码,并且根据第三字段中所述页面资源对应的流数据计算得到目标校验码,然后将所述目标校验码与所述标准校验码进行对比。若两者一致,则表明页面资源没有被修改,保持不变。若两者不一致,表明页面资源被修改,此时可以将所述页面资源以及所述页面资源对应的页面资源标识从客户端本地删除,以在后续重新获取对应的页面资源。

在本实施方式中,在对本地存储的页面资源标识检验完之后,可以读取本地存储的页面资源,并判断所述页面资源在本地是否存在对应的页面资源标识。若不存在,则可以将所述页面资源从本地删除。若存在,则可以进一步地对所述页面资源进行校验。具体的校验方法以及根据校验结果进行的处理方法与上述实施方式相同,这里便不再赘述。这样,通过对页面资源标识和页面资源进行双向检验,从而可以保证检测之后,客户端本地存储的页面资源标识和页面资源之间构成一一对应的关系。

在本说明书一个实施方式中,客户端本地的存储空间有限,当加载过多的页面资源后,会导致本地存储空间不足,无法进一步地存储更多的页面资源。在本实施方式中,加载至本地的页面资源在本地的存储空间中可以按照加载时间进行排序。请参阅图6,客户端本地的存储空间可以视为一个数组结构,越早加载的页面资源在数组中所处的位置就越靠下。这样,当本地没有空闲的存储空间并且当前具备待加载的页面资源时,可以将所述本地的存储空间中最早加载的页面资源删除,并将所述待加载的页面资源写入所述本地的存储空间中。例如,在图6中,页面资源1是最先被加载至客户端中的,此时客户端存储空间已满,那么可以将所述页面资源1删除,以为待加载的页面资源留出空间。在写入所述待加载的页面资源时,由于该页面资源加载时间最晚,可以存储于数组的第一个。

需要说明的是,上述的资源服务器和业务服务器在一种实施方式中可以是分离的两个服务器,在另一个实施方式中,所述资源服务器和业务服务器也可以集成为一个服务器。

请参阅图7,在一个具体应用场景中,所述客户端可以是手机浏览器,该手机浏览器一方面通过代理服务器与该应用的后台服务器相连,另一方面还与资源服务器相连,该资源服务器可以与存储页面资源的cdn相连。所述代理服务器可以针对手机浏览器发出的历史访问请求,模拟手机浏览器的页面加载过程,对目标页面的源码数据进行解析,从而得到源码数据中包含的页面资源的下载地址。这些下载地址可以存储于代理服务器本地,并与目标页面进行关联。所述手机浏览器中可以设置两个接口:这样,当手机浏览器再次向代理服务器发送针对所述目标页面的访问请求时,代理服务器可以与手机浏览器建立长连接,并通过长连接将该目标页面关联的页面资源的下载地址反馈给手机浏览器。同时,代理服务器可以将该访问请求转发至后台服务器,以从后台服务器获取该目标页面的源码数据。该源码数据同样可以通过长连接向手机浏览器反馈。在该应用场景中,手机浏览器接收到源码数据和下载地址后,可以一边解析源码数据,一边从资源服务器中将下载地址对应的页面资源加载至本地。这样,当解析源码数据得到目标下载地址时,便可以直接从本地读取对应的页面资源,并对读取的页面资源进行渲染,从而能够提高页面加载的速度。

请参阅图8,本说明书的一个实施方式中还提供一种客户端,所述客户端包括:网络通信端口100、存储器200以及处理器300。

其中,所述网络通信端口100,用于与业务服务器以及资源服务器进行数据交互;

所述存储器200,用于存储所述业务服务器反馈的数据集以及存储所述资源服务器发来的文件流;

所述处理器300,用于控制所述网络通信端口向所述业务服务器发送指向目标页面的访问请求,并通过所述网络通信端口接收所述业务服务器反馈的包含页面资源标识的数据集;从所述资源服务器中获取所述页面资源标识对应的文件流;所述文件流中包括页面资源的标准校验码和页面资源的数据;根据所述页面资源的数据计算目标校验码,并将所述目标校验码与所述标准校验码进行对比;根据对比结果,对所述文件流进行处理。

在本实施方式中,所述网络通信端口100可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行ftp数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如gsm、cdma等;其还可以为wifi芯片;其还可以为蓝牙芯片。

在本实施方式中,所述存储器200可以是用于保存信息的记忆设备。在数字系统中,能保存二进制数据的设备可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也可以为存储器,如ram、fifo等;在系统中,具有实物形式的存储设备也可以叫存储器,如内存条、tf卡等。

在本实施方式中,所述处理器300可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书一个或多个实施方式中并不作限定。

上述实施方式公开的客户端,其网络通信端口100、存储器200和处理器300实现的具体功能,可以与本说明书一个或多个实施方式中文件流的处理方法的实施方式相对照解释,可以实现该方法的实施方式并达到该方法实施方式的技术效果。

请参阅图9,本申请还提供一种文件流的提供方法,所述方法包括以下步骤。

s21:接收客户端发来的指向目标页面的访问请求;

s23:响应于所述访问请求,向所述客户端反馈包含页面资源标识的数据集,以使得所述客户端从资源服务器中获取所述页面资源标识对应的文件流;所述文件流中包括页面资源的标准校验码和页面资源的数据;其中,根据所述页面资源的数据计算得到的目标校验码与所述标准校验码之间的对比结果限定所述客户端对所述文件流的处理方式。

在本实施方式中,所述方法的执行主体可以是业务服务器。所述业务服务器可以是图1所示的网站服务器。在所述网站服务器中,可以具备网站中页面的源码数据以及页面中所需加载的页面资源的下载地址。其中,所述源码数据可以是网站的开发人员编辑的用于展示页面内容的代码。在所述源码数据中,可以包括表征页面框架的代码,还可以包括表征页面中展示的文字的代码,还可以包括表征页面中展示的图片、音频、视频的代码。需要说明的是,由于图片、音频、视频的数据量相对较大,在页面的源码数据中,通常包含的是图片、音频、视频的下载地址。这样,当客户端解析至该下载地址时,可以通过该下载地址获取相应的图片、音频、视频。在本实施方式中,所述页面中所需加载的页面资源可以是存储于所述网站服务器或者其它服务器中的数据。例如,所述页面资源可以是图片、音频、视频、页面框架等数据。所述页面资源的数据量通常较大,因此所述页面资源通常不包含于所述源码数据中,在所述源码数据中往往包含所述页面资源的下载地址。在本实施方式中,网站的开发人员在编辑页面时,通常会设定页面中所需加载的页面资源的页面资源标识。所述页面资源标识可以是上述的下载地址,也可以是用于表征所述下载地址的符号,该符号与下载地址之间通常会存在映射关系,这样,通过该符号便可以获取到页面资源的下载地址。这样,页面与该页面中所需展示的页面资源的页面资源标识之间便可以存在关联关系,与页面相关联的页面资源标识也可以存储于网站服务器中。这样,当客户端向网站服务器发送针对目标页面的访问请求时,该网站服务器便可以将该目标页面的源码数据以及相关联的页面资源标识一并反馈给客户端。

在本实施方式中,客户端接收到第一数据集和第二数据集后,可以一边解析源码数据,一边将页面资源标识对应的页面资源加载至本地。这样,当客户端解析源码数据得到目标标识时,便可以直接从本地读取对应的页面资源,并对读取的页面资源进行渲染,从而能够提高页面加载的速度。

在本实施方式中,客户端在获取到所述业务器反馈的页面资源标识后,可以将所述页面资源标识指向的页面资源加载至本地。具体地,所述客户端可以与资源服务器相连。所述资源服务器可以与存储页面资源的源服务器相连。当所述客户端接收到页面资源标识后,可以将所述页面资源标识发送至所述资源服务器处,从而从所述资源服务器处获取对应的页面资源。所述资源服务器可以记录客户端之前发来的各个页面资源标识,并且在下载了对应的页面资源后,将页面资源存储于资源服务器本地。这样,如果客户端发送的页面资源标识对应的页面资源已经在资源服务器中存储,那么页面资源服务器便可以直接将对应的页面资源反馈给客户端,无需再向源服务器进行页面资源请求。当然,为了保持资源服务器中页面资源的准确性,资源服务器可以按照固定周期从源服务器中更新对应的页面资源。客户端可以预先设定所述资源服务器对应的接口,这样,在需要下载页面资源时,便可以通过该接口向资源服务器发送所需下载的页面资源的标识。

在本实施方式中,在客户端与源服务器之间采用资源服务器的目的在于,资源服务器在向客户端反馈页面资源时,可以将页面资源的格式转换为自定义的数据流格式。这样,客户端从资源服务器处下载的页面资源均可以是具备自定义的数据流格式的文件流。请参阅表1,所述自定义的数据流格式中,可以包括第一字段、第二字段以及第三字段;其中,所述第一字段中的数据用于表征第二字段中数据的长度。这样,客户端在接收到该数据流之后,通过读取第一字段中的数据,从而可以获知第二字段中数据的长度,从而可以根据获知的长度,准确地读取第二字段中的数据。在实际应用场景中,所述第一字段中可以包括固定字节的数据,该固定字节的数据可以是一个int类型的值,用于表征第二字段中数据的长度。

在本实施方式中,所述第三字段中可以包括至少一个页面资源的数据,每个页面资源的数据可以作为一个流数据。这样,一个流数据便可以代表一个页面资源的详细信息。例如,所述流数据中可以包括页面资源的二进制代码,该二进制代码被客户端解析之后便可以渲染为需要展示的页面资源。所述第二字段中的数据可以用于表征第三字段中流数据对应的属性信息。所述属性信息可以包括流数据的长度、流数据表征的页面资源的类型、流数据对应的页面资源标识、流数据对应的校验码等。所述第二字段中的内容可以显示为一个数组,数组中的一项便可以代表一个流数据对应的属性信息。

在本实施方式中,客户端加载至本地的页面资源可以具备上述的自定义的数据流格式。采用该自定义的数据流格式的有益之处在于,客户端可以方便地对本地的页面资源进行校验。在所述自定义的数据流格式的第二字段中,可以包括表征页面资源的数据流的校验码,那么当客户端从资源服务器处获取页面资源后,可以根据第三字段中的流数据,分别计算出各个流数据对应的校验码。计算所述校验码的方式可以是采用哈希算法进行计算,从而可以得到所述流数据的md5码。所述第二字段中的校验码也可以是md5码。那么客户端可以比对根据流数据计算出的校验码是否与第二字段中记录的该流数据对应的校验码一致,如果一致,则表明下载的流数据没有出错,客户端本地的页面资源与资源服务器中的页面资源相同。如果不一致,则表明下载的流数据出错,从而可以重新从资源服务器中获取该出错的页面资源,直至校验码一致为止。

在本实施方式中,当客户端将页面资源加载至本地之后,还可以对本地存储的页面资源进行持续的校验。具体的校验时机例如可以是客户端启动时,或者按照客户端设定的固定周期进行校验。校验的方式还是将第二字段中的校验码与第三字段中流数据计算得到的校验码进行比对。这样校验的有益效果在于,一旦客户端本地的页面资源出现损坏或者被改动,那么就会导致两个校验码不一致,从而使得客户端重新从资源服务器处获取出现损坏或者被改动的页面资源。

这样,在本实施方式中,当所述目标校验码与所述标准校验码一致时,将所述页面资源标识对应的文件流存储于本地;当所述目标校验码与所述标准校验码不一致时,重新从所述资源服务器获取所述页面资源标识对应的文件流。

在本说明书一个实施方式中,在接收到客户端发来的访问请求后,业务服务器可以与所述客户端建立长连接,并基于所述长连接向所述客户端反馈本地存储的第一数据集和第二数据集。所述长连接可以指在一个连接上,可以持续发送多个数据包。这样,业务服务器在向客户端反馈第一数据集和第二数据集时,每次可以仅反馈数据集中的一部分数据。这样,客户端可以在接收到一部分数据的情况下便开始进行页面资源下载和源码数据解析的流程,此后便可以一边通过长连接接收所述业务服务器反馈的所述第一数据集和所述第二数据集,一边对已经接收到的数据进行处理,从而能够提高页面加载的速度。

在本说明书一个实施方式中,业务服务器反馈给客户端的资源标识可能并不完备,这就导致客户端在解析源码数据,得到目标页面资源的目标标识后,该目标标识可能不包含在之前业务服务器反馈的第二数据集中。这样,在本地便不存在所述目标标识指向的目标页面资源。此时,客户端可以根据所述目标标识从存储所述目标页面资源的源服务器处获取所述目标页面资源。在获取所述目标页面资源后,为了使得服务器中针对该目标页面的页面资源标识能够完备,客户端可以将所述目标标识发送至所述业务服务器。这样,服务器便可以接收所述客户端反馈的指向目标页面资源的目标标识。服务器从而可以在本地存储所述目标标识并将所述目标标识与所述目标页面进行关联,以使得再次接收到指向所述目标页面的访问请求时,向所述访问请求的发起方反馈所述第一数据集和第三数据集;其中,所述第三数据集包括所述第二数据集中的页面资源标识和所述目标标识。

在本说明书一个实施方式中,在接收客户端发来的指向目标页面的访问请求之后,服务器还可以将所述访问请求在本地进行存储,从而对发来的访问请求进行备份。在本实施方式中,服务器可以根据本地存储的访问历史,模拟浏览器访问目标页面的过程。具体地,服务器可以读取本地存储的所述访问请求,并基于所述访问请求,在本地预渲染所述访问请求对应的目标页面。其中,所述预渲染可以指模拟浏览器访问目标页面的过程,对所述目标页面的源码数据进行解析和渲染。在预渲染的过程中,服务器可以提取所述源码数据中包含的各个页面资源标识。在提取到源码数据中的页面资源标识后,服务器便可以将根据所述目标页面的源码数据解析得到的页面资源标识存储于本地,并将解析得到的所述页面资源标识与所述目标页面相关联。在实际应用中,所述业务服务器可以按照固定的时间周期,周期性地模拟对所述目标页面的访问行为,从而保持本地存储的页面资源标识的准确性和完备性。这样,当再次接收到访问该目标页面的访问请求时,便可以向访问请求的发起方反馈该目标页面关联的页面资源标识。

在本说明书一个实施方式中,在所述预渲染的过程中,为了能够充分提取目标页面的源码数据中的页面资源标识,服务器可以模拟用户在所述目标页面中下达的控制指令。所述控制指令例如可以包括将页面进行上下拉动,或者在页面中的多个标签之间来回切换等。这样,服务器可以在施加所述控制指令之后,获取所述目标页面中新增的所需展示的页面资源的页面资源标识。例如,在将目标页面向下拉动时,当前页面中可以展示之前没有展示的页面内容,这部分页面内容中也会包含需要展示的页面资源,这一部分页面资源便可以是新增的页面资源,这部分新增的页面资源的标识同样可以通过对源码数据解析得到。

在本说明书一个实施方式中,所述文件流可以包括第一字段、第二字段以及第三字段;其中,所述第一字段中的数据用于表征第二字段中数据的长度。这样,客户端在接收到该数据流之后,通过读取第一字段中的数据,从而可以获知第二字段中数据的长度,从而可以根据获知的长度,准确地读取第二字段中的数据。在实际应用场景中,所述第一字段中可以包括固定字节的数据,该固定字节的数据可以是一个int类型的值,用于表征第二字段中数据的长度。

在本实施方式中,所述第三字段中可以包括至少一个页面资源的数据,每个页面资源的数据可以作为一个流数据。这样,一个流数据便可以代表一个页面资源的详细信息。例如,所述流数据中可以包括页面资源的二进制代码,该二进制代码被客户端解析之后便可以渲染为需要展示的页面资源。所述第二字段中的数据可以用于表征第三字段中流数据对应的属性信息。所述属性信息可以包括流数据的长度、流数据表征的页面资源的类型、流数据对应的页面资源标识、流数据对应的校验码等。所述第二字段中的内容可以显示为一个数组,数组中的一项便可以代表一个流数据对应的属性信息。

请参阅图10,本申请还提供一种服务器,所述服务器包括网络通信端口110、存储器210及处理器310。

所述网络通信端口110,用于与客户端进行数据交互;

所述存储器210,用于存储包含页面资源标识的数据集;

所述处理器310,用于通过所述网络通信端口接收所述客户端发来的指向目标页面的访问请求;响应于所述访问请求,控制所述网络通信端口向所述客户端反馈包含页面资源标识的数据集,以使得所述客户端从资源服务器中获取所述页面资源标识对应的文件流;所述文件流中包括页面资源的标准校验码和页面资源的数据;其中,根据所述页面资源的数据计算得到的目标校验码与所述标准校验码之间的对比结果限定所述客户端对所述文件流的处理方式。

在本实施方式中,所述网络通信端口110可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行ftp数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如gsm、cdma等;其还可以为wifi芯片;其还可以为蓝牙芯片。

在本实施方式中,所述存储器210可以是用于保存信息的记忆设备。在数字系统中,能保存二进制数据的设备可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也可以为存储器,如ram、fifo等;在系统中,具有实物形式的存储设备也可以叫存储器,如内存条、tf卡等。

在本实施方式中,所述处理器310可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书一个或多个实施方式中并不作限定。

上述实施方式公开的服务器,其网络通信端口110、存储器210和处理器310实现的具体功能,可以与本说明书一个或多个实施方式中文件流的提供方法的实施方式相对照解释,可以实现该方法的实施方式并达到该方法实施方式的技术效果。

由上可见,本说明书一个或多个实施方式提供的技术方案,客户端在获取到服务器提供的文件流之后,在该文件流中可以包含页面资源的标准校验码。该标准校验码可以作为衡量下载的文件流是否完好的依据。在对下载的文件流进行校验时,可以提取其中的页面资源的数据,并根据哈希算法对页面资源的数据进行计算,从而可以得到下载的页面资源的数据对应的目标校验码。如果目标校验码与标准校验码一致,则表明客户端下载的文件流与服务器中存储的文件流是一致的;而如果目标校验码与标准校验码不一致,则表明下载的文件流可能出现了损坏。这样,本说明书一个或多个实施方式提供的技术方案,能够对下载的文件流进行校验,并根据校验的结果,可以对下载的文件流进行存储或者重新下载的处理。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现客户端、服务器以外,完全可以通过将方法步骤进行逻辑编程来使得客户端、服务器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种客户端、服务器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书一个或多个实施方式中可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书一个或多个实施方式中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书一个或多个实施方式中各个实施方式或者实施方式的某些部分所述的方法。

本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对服务器、客户端的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。

本说明书一个或多个实施方式中可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施方式中,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然通过实施方式描绘了本说明书一个或多个实施方式中,本领域普通技术人员知道,本说明书一个或多个实施方式中有许多变形和变化而不脱离本说明书一个或多个实施方式中的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书一个或多个实施方式中的精神。

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