网络文件传输方法及系统的制作方法

文档序号:7992110阅读:190来源:国知局
专利名称:网络文件传输方法及系统的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种网络文件传输方法及系统。
背景技术
目前,网络上传输的网络文件有两类,一类是纯文本文件,例如超文件标记语言 (Hypertext Markup Language,简称为 HTML)、可扩展的标记语言(extensible Markup Language,简称为 XML)、Java 脚本对象符号(Javakrip Object Notation,简称为 JSON) 等;另一类是二进制文件,如联合图像专家组(Joint Photographic Experts Group,简称为JPEG或JPG)等。其中,纯文本文件的熵值一般较低(即,纯文本文件用了较多的存储空间存放了较少的信息)。相关技术中,对于网络文件,通常是采用全文传输的。但是,对于同一个统一资源定位符(Uniform Resource Locator,简称为URL)地址来说,通常短时间内其内容变化是很小的,因此,该全文传输会导致很多冗余信息传输到客户端,从而增加传输流量并延长传输时间。

发明内容
针对相关技术中全文传输将很多冗余信息传输到客户端,增加传输流量并延长传输时间的问题,本发明提供了一种网络文件传输方法及系统。根据本发明的一个方面,提供了一种网络文件传输方法,包括客户端向服务器发送携带有第一网络文件标识的网络文件请求消息,其中,网络文件请求消息用于客户端向服务器请求获取网络文件当前的内容,第一网络文件标识用于指示客户端已获取的网络文件的内容;客户端接收到来自服务器的差分文件,其中差分文件存储有网络文件当前的内容与客户端已获取的网络文件的内容的差值;客户端将差分文件与客户端已获取的网络文件的内容进行合成,得到网络文件当前的内容。优选地,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括客户端接收到来自服务器的第二网络文件标识,其中,第二网络文件标识用于指示网络文件当前的内容。优选地,在客户端接收到来自服务器的第二网络文件标识之后,还包括在后续的客户端向服务器请求获取网络文件当前的内容的情况下,客户端向服务器发送携带有第二网络文件标识的网络文件请求消息。优选地,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括服务器在自身缓存中未找到第一网络文件标识指示的客户端已获取的网络文件的内容;服务器向客户端发送网络文件当前的内容。优选地,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括服务器确定网络文件当前的内容的长度小于差分文件的长度;服务器向客户端发送网络文件当前的内容。
优选地,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括服务器确定网络文件当前的内容与客户端已获取的网络文件的内容相同;服务器向客户端发送携带有原因值304的网络文件响应消息,其中原因值304用于指示网络文件当前的内容未变化。优选地,客户端接收到来自服务器的差分文件包括客户端接收到来自服务器的通过HTTP标准的GZIP压缩的差分文件。根据本发明的另一个方面,提供了一种网络文件传输系统,包括客户端和服务器, 其中客户端包括第一发送模块,用于向服务器发送携带有第一网络文件标识的网络文件请求消息,其中,网络文件请求消息用于客户端向服务器请求获取网络文件当前的内容,第一网络文件标识用于指示客户端已获取的网络文件的内容;第一接收模块,用于接收来自服务器的差分文件,其中差分文件存储有网络文件当前的内容与客户端已获取的网络文件的内容的差值;合成模块,用于将差分文件与客户端已获取的网络文件的内容进行合成,得到网络文件当前的内容。优选地,客户端还包括第二接收模块,用于接收到来自服务器的第二网络文件标识,其中,第二网络文件标识用于指示网络文件当前的内容。优选地,客户端还包括第二发送模块,用于在后续的向服务器请求获取网络文件当前的内容的情况下,向服务器发送携带有第二网络文件标识的网络文件请求消息。优选地,服务器还包括第一确定模块,用于确定在自身缓存中未找到第一网络文件标识指示的客户端已获取的网络文件的内容;第三发送模块,用于向客户端发送网络文件当前的内容。优选地,服务器还包括第二确定模块,用于确定网络文件当前的内容的长度小于差分文件的长度;第四发送模块,用于向客户端发送网络文件当前的内容。本发明中,通过传输存储有网络文件当前内容与客户端已获取的网络文件的内容的差值的差分文件,解决了全文传输将很多冗余信息传输到客户端的问题,进而减少了传输流量并缩短了传输时间。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例的网络文件传输方法的流程图;图2是根据本发明实施例基本原理示意图;图3是根据本发明实施例的服务器处理客户端新请求的流程图;图4是根据本发明实施例的增加标识和删除标识的组成结构框图;图5是根据本发明优选实施例一的冗余内容用增加标识和删除标识进行替换的示意图一;图6是根据本发明优选实施例二的冗余内容用增加标识和删除标识进行替换的
示意图二 ;图7是根据本发明优选实施例三的冗余内容用增加标识和删除标识进行替换的
示意图三;
图8是根据本发明实施例的网络文件传输系统的结构框图;图9是根据本发明优选实施例的网络文件传输系统的结构框图一;图10是根据本发明优选实施例的网络文件传输系统的结构框图二 ;图11是根据本发明优选实施例的网络文件传输系统的结构框图三;图12是根据本发明优选实施例的网络文件传输系统的结构框图四。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。图1是根据本发明实施例的网络文件传输方法,包括如下的步骤S102至步骤 S106。步骤S102,客户端向服务器发送携带有第一网络文件标识的网络文件请求消息, 其中,网络文件请求消息用于客户端向服务器请求获取网络文件当前的内容,第一网络文件标识用于指示客户端已获取的网络文件的内容。步骤S104,客户端接收到来自服务器的差分文件,其中差分文件存储有网络文件当前的内容与客户端已获取的网络文件的内容的差值。步骤S106,客户端将差分文件与客户端已获取的网络文件的内容进行合成,得到网络文件当前的内容。相关技术中,全文传输会导致很多冗余信息从服务器传输到客户端,从而增加传输流量并延长传输时间。本发明实施例中,仅仅传输存储有网络文件当前内容与客户端已获取的网络文件的内容的差值的差分文件,从而可以减少传输流量并缩短传输时间。优选地,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括客户端接收到来自服务器的第二网络文件标识,其中,第二网络文件标识用于指示网络文件当前的内容。本优选实施例中,通过第二网络文件标识,可以保证后续的网络文件传输仅仅传输差分文件,从而可以减少传输流量并缩短传输时间。优选地,在客户端接收到来自服务器的第二网络文件标识之后,还包括在后续的客户端向服务器请求获取网络文件当前的内容的情况下,客户端向服务器发送携带有第二网络文件标识的网络文件请求消息。优选地,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括服务器在自身缓存中未找到第一网络文件标识指示的客户端已获取的网络文件的内容;服务器向客户端发送网络文件当前的内容。考虑到服务器因为时间太久已经没有第一网络文件标识指示的网络文件的内容的缓存,本优选实施例中,通过直接向客户端发送网络文件当前的内容,可以保证网络文件正确、可靠地传输。优选地,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括服务器确定网络文件当前的内容的长度小于差分文件的长度;服务器向客户端发送网络文件当前的内容。考虑到网络文件因为变化过多而导致网络文件当前的内容的长度小于差分文件的长度,本优选实施例中,通过直接向客户端发送长度小的网络文件当前的内容,可以减少传输流量并缩短传输时间。优选地,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括服务器确定网络文件当前的内容与客户端已获取的网络文件的内容相同;服务器向客户端发送携带有原因值304的网络文件响应消息,其中原因值304用于指示网络文件当前的内容未变化。考虑到网络文件长时间未变化的情况,本优选实施例中,通过直接向客户端发送标准的HTTP原因值304 (304的意思是Not Modified),可以减少传输流量并缩短传输时间。优选地,客户端接收到来自服务器的差分文件包括客户端接收到来自服务器的通过HTTP标准的GZIP压缩的差分文件。本优选实施例中,通过HTTP标准的GZIP压缩差分文件并传输,可以减少传输流量并缩短传输时间。为达到上述目的,本发明的技术方案是这样实现的客户端向服务器请求某一个URL:A对应的网络文件Contentl,服务器将该网络文件发送给客户端,同时将该文件的文件标识Markl告诉客户端。一段时间之后,客户端认为可能URL:A对应的网络文件的内容发生变化了,就第二次请求服务器发送同一个URL:A对应的新的网络文件Content〗。在请求中,它把之前获得的文件标识Markl告诉服务器。服务器根据Markl就可以知道客户端拥有Contentl。如果当第二次请求到来时,URL:A对应的网络文件的内容都还没有发生改变,那么服务器就以标准的HTTP原因值304回复客户端。下一次客户端再来请求URL:A对应的新的网络文件时,仍然会带上Markl。如果当第二次请求到来时,URL:A对应的网络文件的内容已经变成了 Content2, 服务器就比较Content2和Contentl的不同,生成差分文件Deltal发送给客户端,同时将 Content2对应的文件标识Mark2告诉客户端。客户端根据Contentl和Deltal得到新文件Content〗。下一次客户端再来请求URL:A对应的新的网络文件时,将会带上Mark2。重复上述过程。在差分文件Deltal的传输过程中,仍然可以用HTTP标准的GZIP压缩传输。只是说被GZIP压缩的对象——HTTP正文里的内容——是差分文件Deltal,而不是Content2。如果服务器收到了 Markl却没有找到Contentl的内容(比如说因为时间太久,服务器已经没有Contentl的缓存),就直接把Content2和Mark2传给客户端。下面将结合实例对本发明实施例的实现过程进行详细描述。图2是根据本发明实施例基本原理示意图,如图2所示201是目前服务器上最新文件;202是服务器缓存中的旧文件;204是客户端缓存中的旧文件;202和204的内容是一致的。客户端将204的文件标识Markl发给服务器请求获得201。服务器首先根据Markl 在自己的缓存中找到202,然后将201和202做比较生成差分文件203,之后将203连同201 的文件标识Mark2 —起发送给客户端,客户端根据204和203合成205,205的内容和201 — 致。这样客户端就获得了服务器上的最新文件。当下次请求最新文件时,客户端会将Mark2 发给服务器,让它在自己的缓存中找201的内容参与比较,其余流程同前。图3是根据本发明实施例的服务器处理客户端新请求的流程图,如图3所示,当服务器收到的请求中没有带上文件标识的处理流程时,服务器会直接将最新文件Contentl 和Contentl的文件标识Markl返回给客户端。这种情况经常发生在客户端第一次请求服务器某个URL对应的网络文件的时候,包括如下的步骤S302至步骤S306。步骤S302,当服务器收到的请求中带有文件标识Markl,服务器上最新文件仍然为Contentl时,服务器会将标准的HTTP原因值304返回给客户端。步骤S304,当服务器收到的请求中,带有文件标识Markl,服务器上最新文件已经更新为Content〗,服务器能在缓存中找到Markl对应的文件内容Contentl时,(需要注意的是,服务器应该维护一个长度为η的缓存“窗口 ”,把时间上最新的η份旧文件及其文件标识存储于“窗口”中,以文件标识为关键字,便于查找。)服务器把差分文件Deltal连同Content〗的文件标识Mark2发送给客户端。但是,如果文件Deltal的长度大于文件 Content2的长度,应该直接将最新文件Content〗和相关文件标识Mark2返回给客户端。步骤S306,当服务器收到的请求中带有文件标识Markl,服务器上最新文件已经更新为Content〗,服务器不能在缓存中找到Markl对应的文件内容Contentl时,服务器会直接将最新文件Content〗和Content〗的文件标识Mark2返回给客户端。本发明是这样定义差分文件的差分文件默认约定使用UTF-8编码,但可由服务端和客户端约定换用任何其他适合的编码格式。默认使用UTF-8编码是出于通用性的考虑,但考虑到减少文件占用的存储空间的需要,也可约定对于某个URL对应的网络文件及其差分文件使用其他适合的编码格式,使占用的存储空间最小。(可事先约定,也可在HTTP GET请求的包头中或者是在URL的参数中指定编码格式)例如,内容中大量出现汉字的文件,约定双方使用GB2312编码更为合适,这是因为UTF-8中一个汉字占用3个字节,而 GB2312中一个汉字只占用2个字节。差分文件由两类标识及其参数组成。两类标识分别是增加标识和删除标识。如图 4所示,增加标识中写明新内容插入的地址(以字节计算),在标识后面直接跟上需添加的内容。删除标识中写明被删除内容的起始地址,以及被删除内容的长度。(均以字节计算)。 可以这样定义增加标识和删除标识增加标识=增加标识头+新内容插入的地址+新增的内容;删除标识=删除标识头+被删除内容的起始地址+被删除内容的长度。需要注意的是a)上述新内容插入的地址和被删除内容的起始地址均是以Markl对应的旧文件 Contentl文件作为坐标的。b)本发明建议标识不使用TLV结构,虽然TLV结构在解析方面的性能非常优秀,但是它占用的存储空间较大。本发明建议标识使用定长的结构。c)如果增加标识中新内容插入的坐标是0,即在Contentl起始位置插入新内容, 可省掉这个增加标识。将需添加的内容直接放在差分文件的起始位置,解析差分文件时默认将需添加的内容从坐标O开始插入。d)如果删除标识指示的删除内容是指从删除标识中的起始地址开始到Contentl 文件结尾的所有内容全部删除。可以省掉删除标识中的被删除内容的长度,但必须将这个删除标识置于差分文件的结尾。这样,解析差分文件时默认将从这个删除标识中的起始地址开始到Contentl文件结尾的所有内容全部删除。如果删除标识指示的是要将Contentl 的所有内容全部删除,删除标识还可以省掉起始地址(因为起始地址为0)和被删除内容的长度,只保留一个删除标识头,但必须将这个删除标识置于差分文件的结尾。e)增加标识和删除标识均以编码格式中,在纯文本文件中不可能出现的非文字编码作为开头,来与普通内容做区分,例如,可以使用美国信息互换标准代码(American Standard Code for Information hterchange,简称为 ASCII)编码中的“25EM 纸尽”作为增加标识头,以“MCAN作废”作为删除标识头。解析差分文件时读到25就知道是增加标识,读到M就知道是删除标识。f)差分算法设计如下设增加标识的长度是m字节(不算增加标识后面的新增内容的字节数),删除标识的长度是η字节。旧文件是Contentl,新文件是Content2。扫描Contentl,Content2,
找到内容相同的子字串Si,S^ ......,(寻找子字串si,S12,......,的文本比较算法并不
属于本发明的范畴,建议使用目前常用的算法,例如M.D. Mcllroy在《An Algorithm for Differrential File Comparison》一文中提出的算法)。本发明是要从S\,S12,......,中
选择出适合进行本发明差分运算的S1, S2,……,、^<=炉),即找到可以从Content〗中省略,不需要再次传输到客户端的冗余字串。我们定义S1是^,Si,,......,中第一个适合进行差分运算的子字串。我们按照下述
(一)的方法从Si,S^ ......,中找到。设Sj^q,S^ ......,中的某一个字串,呌丨代表Sj1
的字串长度(以字节计算)。(一),Sj1H要满足以下三个条件中的任何一个,就是我们要寻找的Si。根据C0ntent2,C0ntentl在SJ1和S' n+1之间内容的不同,存在如下述实例一至三
所示的三种不同情况。实例一图5是根据本发明优选实施例一的冗余内容用增加标识和删除标识进行替换的示意图一,如图5所示,Content2在S^P S' n+1之间新增内容P,Contentl在义和S' n+1 之间无内容在这种情况下,P需要被增加,但必须满足|>m,我们才能用一个增加标识来指示在SJ1的后面需要进行插入操作,否则是不划算的,Sj1就不是我们要寻找的Si。图5中虚线方框代表S' n+1,点划线方框代表Content2相对Contentl新增的内容P,而阴影块就代表使用增加标识后,差分文件比Content〗节省的存储空间。实例二图6是根据本发明优选实施例二的冗余内容用增加标识和删除标识进行替换的示意图二,如图6所示,Content2在Sjj和S' n+1之间无内容,Contentl在Sjj和S' _之间有内容V:在这种情况下,V需要被删除。但必须满足IVI > η,我们才能用一个删除标识来指示在Sj1的后面需要进行删除操作。否则是不划算的,Sj1就不是我们要寻找的Si。图6中虚线方框代表SJ^P S' n+1,点划线方框代表Content2相对Contentl应删除的内容V,而阴影实心块就代表使用删除标识后,差分文件比Content〗节省的存储空间。实例三图7是根据本发明优选实施例三的冗余内容用增加标识和删除标识进行替换的示意图三,如图7所示,Content2在Sj^P S' n+1之间新增内容P,Contentl在Sj1和S' n+1 之间有内容V:
这种情况是优选实施例一和优选实施例二的混合情况,只要满足 (iSii + ivi) >(m+n)即可。我们先用一个增加标识来指示在Sl1W后面需要进行插入操作,再用一个删除标识来指示在Sj1的后面需要进行删除操作。如果不满足上述条件,替换就是不划算的,SJ3就不是我们要寻找的Si。需要注意的是,不满足上述三种情况的SJ3将被放弃,继续寻找满足条件的Sp( 二),如果找不到符合(一)的S1,应该这么做将Content〗直接放在差分文件的起始位置,省略增加标识。参考前述C)中的说明将需添加的内容直接放在差分文件的起始位置,解析差分文件时默认将需添加的内容从坐标0开始插入。然后,使用一个删除标识来指示Contentl应该被删除。参考前述d)中的说明如果删除标识指示的是要将Contentl的所有内容全部删除,删除标识可以省掉起始地址(因为起始地址为0)和被删除内容的长度,只保留一个删除标识头,但必须将这个删除标识置于差分文件的结尾。需要注意的是,这样做,生成的差分文件与Content2相比只多1个字节(即删除标识头占用的那个字节)。(三),如果找到了符合(一)的Sp因为S1是第一段内容相同的字串,所以在S1 的前面可能存在三种情况Content2在S1之前有内容P,Contentl在S1之前无内容,则将P直接放在差分文件的起始位置,省略增加标识。这样做,并没有增加冗余字节。Content2在S1之前无内容,Contentl在S1之前有内容V,则使用一个删除标识来指示V应该被删除。这样做,极端情况下有可能增加冗余字节,但冗余字节不会超过(n-1) 个(当V只有1个字节时)。Content2在S1之前有内容P,Contentl在S1之前有内容V,则将P直接放在差分文件的起始位置,省略增加标识;然后使用一个删除标识来指示V应该被删除。这样做,极端情况下有可能增加冗余字节,但冗余字节不会超过(n-1)个。(四),继续寻找第η段满足(一)中条件的&(11>=2),因为是第η段,所以不需要考虑&之前的情况,只考虑之后的情况,处理同(一)。找到&后,需要更新与相关的增加/删除标志,因为此时才能确定在的后面需要添加的内容和被删除的内容长度。(五),如果、是最后一个满足(一)中条件的子字串,并且如果、后面需要使用一个删除标识,则根据前述d)中的说明,可以省略删除标识里的被删除内容的长度,但必须将这个删除标识置于差分文件的结尾。在非极端情况下,根据上述算法生成的差分文件,相对Content2占用的存储空间更小。在极端条件下,差分文件可能比Content〗最多冗余(n-1)个字节。实例以下是一个实现本发明的实例,本实例的处理对象主要是通过网络传输的XML文件/JSON文件等等(这些文件格式常用于调用网络API获得的结果的表示,例如微博、团购网站的网络API等,因此本实例具有实用价值)差分文件具有以下特征
(1)约定本实例中的差分文件默认使用UTF-8编码,但可由服务端和客户端约定换用任何其他适合的编码格式。(2)本实例一共定义有2种增加标识和3种删除标识。(3)定义第一种增加标识使用UTF-8编码中的25EM纸尽(25EM纸尽是ASCII字符中的一个控制字符,但是,ASCII字符在UTF-8编码中的表示与其在ASCII字符表中的表示是一样的)作为增加标识头。以25开头的增加标识后跟的新内容插入的地址以2个字节表不。(4)定义第二种增加标识使用19DC3设备控制3作为增加标识头,但是以19开头的增加标识后跟的新内容插入的地址以3个字节表示。(5)定义第一种删除标识使用MCAN作废作为删除标识头。以M开头的删除标识后跟的被删除内容的起始地址以2个字节表示,被删除内容的长度以2个字节表示。(6)定义第二种删除标识使用18DC2设备控制2作为删除标识头。但是以18开头的删除标识后跟的被删除内容的起始地址以3个字节表示,被删除内容的长度以3个字节表不。(7)定义第三种删除标识使用17DC1设备控制1作为删除标识头。但是以17开头的删除标识后跟的被删除内容的起始地址以3个字节表示,被删除内容的长度以2个字节表不。综上,在作为坐标的旧文件Contentl的长度不超过64K时使用( 定义的增加标识和(5)定义的删除标识。在Contentl的长度大于64K、小于16M时使用(4)定义的增加标识和(6)、(7)定义的删除标识(根据被删除内容的长度是/否超过64K选择使用(6)/ (7)定义的删除标识)。其中,文件标识具有以下特征本实例使用网络文件的CRC16校验码作为它的文件标识。客户端传给服务器的旧文件Contentl的文件标识Markl可以使用以下两种方法的任意一种获得服务器生成,告诉客户端。例如,服务器在生成Contentl时计算出文件标识 Markl,将此标识附带在HTTP GET回复的包头中(或者附带在回复正文中)发给客户端。服务器和客户端用相同算法各自算出相同的标识。例如,服务器在生成Contentl 时计算出文件标识Markl,但只是自己使用,不传递给客户端。客户端与服务器使用同一种 CRC16算法,因此能够根据收到的网络文件Contentl的内容算出相同的文件标识Markl。服务器缓存“窗口”具有如下特征本实例中,服务器为每个URL对应的网络文件都单独维护了一个长度为η的缓存 “窗口”,把时间上最新的η份旧文件及其文件标识存储于“窗口,,中,以文件标识为关键字。 “窗口”装满后,向着时间上最新的方向“滑动”(即按照先进先出策略丢弃最旧文件,放入最新文件)。服务器收到客户端通过HTTP GET请求的包头(或者URL的参数)带来的旧文件的文件标识后,在“窗口”中以文件标识为关键字查找缓存的旧文件。其他应注意的处理包括服务器需比较如下文件的大小生成的差分文件 Deltal ;最新的网络文件Content2 ;Deltal经过GZIP压缩后的文件;Content2经过GZIP 压缩后的文件。比较后选择最小的一个发送给客户端,并在HTTP回复的包头中予以说明 (可以利用回复的包头中GZIP使用的Content-Encoding字段予以说明)。客户端根据包头里的说明得知自己收到的是这4个文件中的哪一个。如果某个URL对应的网络文件Content2的内容主要是汉字组成,可以将通过这个 URL传递的网络文件及其差分文件的编码格式约定为GB2312。需要注意的是,虽然编码改变了,但由于ASCII字符在GB2312编码中的表示与其在ASCII字符表中的表示是一样的,所以增加/删除标识头仍然使用25……等字符。同理,如果UTF-8编码不能保证差分文件占用存储空间最少,本实例就要选择能够使差分文件占用存储空间更少的编码格式。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明实施例提供了一种网络文件传输系统,该系统可以用于实现上述网络文件传输方法。图8是根据本发明实施例的网络文件传输系统的结构框图,如图8所示,包括客户端82和服务器84,其中客户端包括第一发送模块821、第一接收模块822和合成模块 823,下面对其结构进行详细描述。第一发送模块821,用于向服务器发送携带有第一网络文件标识的网络文件请求消息,其中,网络文件请求消息用于客户端向服务器请求获取网络文件当前的内容,第一网络文件标识用于指示客户端已获取的网络文件的内容;第一接收模块822,用于接收来自服务器的差分文件,其中差分文件存储有网络文件当前的内容与客户端已获取的网络文件的内容的差值;合成模块823,连接至第一接收模块822,用于将差分文件与客户端已获取的网络文件的内容进行合成,得到网络文件当前的内容。图9是根据本发明优选实施例的网络文件传输系统的结构框图一,如图9所示,客户端82还包括第二接收模块824,用于接收到来自服务器的第二网络文件标识,其中,第二网络文件标识用于指示网络文件当前的内容。图10是根据本发明优选实施例的网络文件传输系统的结构框图二,如图10所示, 优选地,客户端82还包括第二发送模块825,连接至第二接收模块824,用于在后续的向服务器请求获取网络文件当前的内容的情况下,向服务器发送携带有第二网络文件标识的网络文件请求消息。图11是根据本发明优选实施例的网络文件传输系统的结构框图三,如图11所示, 服务器84还包括第一确定模块841,用于确定在自身缓存中未找到第一网络文件标识指示的客户端已获取的网络文件的内容;第三发送模块842,连接至第一确定模块841,用于向客户端发送网络文件当前的内容。图12是根据本发明优选实施例的网络文件传输系统的结构框图四,如图12所示, 服务器84还包括第二确定模块843,用于确定网络文件当前的内容的长度小于差分文件的长度;第四发送模块844,连接至第二确定模块843,用于向客户端发送网络文件当前的内容。需要说明的是,装置实施例中描述的网络文件传输系统对应于上述的方法实施例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。综上所述,根据本发明的上述实施例,提供了一种网络文件传输方法,包括客户端向服务器发送携带有第一网络文件标识的网络文件请求消息,其中,网络文件请求消息用于客户端向服务器请求获取网络文件当前的内容,第一网络文件标识用于指示客户端已获取的网络文件的内容;客户端接收到来自服务器的差分文件,其中差分文件存储有网络文件当前的内容与客户端已获取的网络文件的内容的差值;客户端将差分文件与客户端已获取的网络文件的内容进行合成,得到网络文件当前的内容。本发明中,通过传输存储有网络文件当前内容与客户端已获取的网络文件的内容的差值的差分文件,解决了全文传输将很多冗余信息传输到客户端的问题,进而减少了传输流量并缩短了传输时间。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种网络文件传输方法,其特征在于包括客户端向服务器发送携带有第一网络文件标识的网络文件请求消息,其中,所述网络文件请求消息用于所述客户端向所述服务器请求获取网络文件当前的内容,所述第一网络文件标识用于指示所述客户端已获取的所述网络文件的内容;所述客户端接收到来自所述服务器的差分文件,其中所述差分文件存储有所述网络文件当前的内容与所述客户端已获取的所述网络文件的内容的差值;所述客户端将所述差分文件与所述客户端已获取的所述网络文件的内容进行合成,得到所述网络文件当前的内容。
2.根据权利要求1所述的方法,其特征在于,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括所述客户端接收到来自所述服务器的第二网络文件标识,其中,所述第二网络文件标识用于指示所述网络文件当前的内容。
3.根据权利要求2所述的方法,其特征在于,在所述客户端接收到来自所述服务器的第二网络文件标识之后,还包括在后续的所述客户端向所述服务器请求获取网络文件当前的内容的情况下,所述客户端向所述服务器发送携带有所述第二网络文件标识的网络文件请求消息。
4.根据权利要求1所述的方法,其特征在于,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括所述服务器在自身缓存中未找到所述第一网络文件标识指示的所述客户端已获取的所述网络文件的内容;所述服务器向所述客户端发送所述网络文件当前的内容。
5.根据权利要求1所述的方法,其特征在于,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括所述服务器确定所述网络文件当前的内容的长度小于所述差分文件的长度;所述服务器向所述客户端发送所述网络文件当前的内容。
6.根据权利要求1所述的方法,其特征在于,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括所述服务器确定所述网络文件当前的内容与所述客户端已获取的所述网络文件的内容相同;所述服务器向所述客户端发送携带有原因值304的网络文件响应消息,其中所述原因值304用于指示所述网络文件当前的内容未变化。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述客户端接收到来自所述服务器的差分文件包括所述客户端接收到来自所述服务器的通过HTTP标准的GZIP压缩的差分文件。
8.—种网络文件传输系统,其特征在于包括客户端和服务器,其中所述客户端包括第一发送模块,用于向所述服务器发送携带有第一网络文件标识的网络文件请求消息,其中,所述网络文件请求消息用于所述客户端向所述服务器请求获取网络文件当前的内容,所述第一网络文件标识用于指示所述客户端已获取的所述网络文件的内容;第一接收模块,用于接收来自所述服务器的差分文件,其中所述差分文件存储有所述网络文件当前的内容与所述客户端已获取的所述网络文件的内容的差值;合成模块,用于将所述差分文件与所述客户端已获取的所述网络文件的内容进行合成,得到所述网络文件当前的内容。
9.根据权利要求8所述的系统,其特征在于,所述客户端还包括第二接收模块,用于接收来自所述服务器的第二网络文件标识,其中,所述第二网络文件标识用于指示所述网络文件当前的内容。
10.根据权利要求9所述的系统,其特征在于,所述客户端还包括第二发送模块,用于在后续的向所述服务器请求获取网络文件当前的内容的情况下,向所述服务器发送携带有所述第二网络文件标识的网络文件请求消息。
全文摘要
本发明公开了一种网络文件传输方法及系统,该方法包括客户端向服务器发送携带有第一网络文件标识的网络文件请求消息,其中,网络文件请求消息用于客户端向服务器请求获取网络文件当前的内容,第一网络文件标识用于指示客户端已获取的网络文件的内容;客户端接收到来自服务器的差分文件,其中差分文件存储有网络文件当前的内容与客户端已获取的网络文件的内容的差值;客户端将差分文件与客户端已获取的网络文件的内容进行合成,得到网络文件当前的内容。本发明减少了传输流量并缩短了传输时间。
文档编号H04L29/06GK102420822SQ201110386788
公开日2012年4月18日 申请日期2011年11月29日 优先权日2011年11月29日
发明者钟声, 陈璐 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1