CN102420822A - 网络文件传输方法及系统 - Google Patents

网络文件传输方法及系统 Download PDF

Info

Publication number
CN102420822A
CN102420822A CN2011103867880A CN201110386788A CN102420822A CN 102420822 A CN102420822 A CN 102420822A CN 2011103867880 A CN2011103867880 A CN 2011103867880A CN 201110386788 A CN201110386788 A CN 201110386788A CN 102420822 A CN102420822 A CN 102420822A
Authority
CN
China
Prior art keywords
network file
client
file
server
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011103867880A
Other languages
English (en)
Inventor
陈璐
钟声
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN2011103867880A priority Critical patent/CN102420822A/zh
Priority to PCT/CN2012/072392 priority patent/WO2013078797A1/zh
Priority to US14/361,018 priority patent/US20150006623A1/en
Priority to EP12853374.2A priority patent/EP2782308A4/en
Publication of CN102420822A publication Critical patent/CN102420822A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种网络文件传输方法及系统,该方法包括:客户端向服务器发送携带有第一网络文件标识的网络文件请求消息,其中,网络文件请求消息用于客户端向服务器请求获取网络文件当前的内容,第一网络文件标识用于指示客户端已获取的网络文件的内容;客户端接收到来自服务器的差分文件,其中差分文件存储有网络文件当前的内容与客户端已获取的网络文件的内容的差值;客户端将差分文件与客户端已获取的网络文件的内容进行合成,得到网络文件当前的内容。本发明减少了传输流量并缩短了传输时间。

Description

网络文件传输方法及系统
技术领域
本发明涉及通信领域,具体而言,涉及一种网络文件传输方法及系统。
背景技术
目前,网络上传输的网络文件有两类,一类是纯文本文件,例如超文件标记语言(HypertextMarkup Language,简称为HTML)、可扩展的标记语言(eXtensible Markup Language,简称为XML)、Java脚本对象符号(JavaScrip 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对应的网络文件Content1,服务器将该网络文件发送给客户端,同时将该文件的文件标识Mark1告诉客户端。
一段时间之后,客户端认为可能URL:A对应的网络文件的内容发生变化了,就第二次请求服务器发送同一个URL:A对应的新的网络文件Content2。在请求中,它把之前获得的文件标识Mark1告诉服务器。服务器根据Mark1就可以知道客户端拥有Content1。
如果当第二次请求到来时,URL:A对应的网络文件的内容都还没有发生改变,那么服务器就以标准的HTTP原因值304回复客户端。下一次客户端再来请求URL:A对应的新的网络文件时,仍然会带上Mark1。
如果当第二次请求到来时,URL:A对应的网络文件的内容已经变成了Content2,服务器就比较Content2和Content1的不同,生成差分文件Delta1发送给客户端,同时将Content2对应的文件标识Mark2告诉客户端。客户端根据Content1和Delta1得到新文件Content2。下一次客户端再来请求URL:A对应的新的网络文件时,将会带上Mark2。重复上述过程。
在差分文件Delta1的传输过程中,仍然可以用HTTP标准的GZIP压缩传输。只是说被GZIP压缩的对象——HTTP正文里的内容——是差分文件Delta1,而不是Content2。
如果服务器收到了Mark1却没有找到Content1的内容(比如说因为时间太久,服务器已经没有Content1的缓存),就直接把Content2和Mark2传给客户端。
下面将结合实例对本发明实施例的实现过程进行详细描述。
图2是根据本发明实施例基本原理示意图,如图2所示:201是目前服务器上最新文件;202是服务器缓存中的旧文件;204是客户端缓存中的旧文件;202和204的内容是一致的。客户端将204的文件标识Mark1发给服务器请求获得201。服务器首先根据Mark1在自己的缓存中找到202,然后将201和202做比较生成差分文件203,之后将203连同201的文件标识Mark2一起发送给客户端,客户端根据204和203合成205,205的内容和201一致。这样客户端就获得了服务器上的最新文件。当下次请求最新文件时,客户端会将Mark2发给服务器,让它在自己的缓存中找201的内容参与比较,其余流程同前。
图3是根据本发明实施例的服务器处理客户端新请求的流程图,如图3所示,当服务器收到的请求中没有带上文件标识的处理流程时,服务器会直接将最新文件Content1和Content1的文件标识Mark1返回给客户端。这种情况经常发生在客户端第一次请求服务器某个URL对应的网络文件的时候,包括如下的步骤S302至步骤S306。
步骤S302,当服务器收到的请求中带有文件标识Mark1,服务器上最新文件仍然为Content1时,服务器会将标准的HTTP原因值304返回给客户端。
步骤S304,当服务器收到的请求中,带有文件标识Mark1,服务器上最新文件已经更新为Content2,服务器能在缓存中找到Mark1对应的文件内容Content1时,(需要注意的是,服务器应该维护一个长度为n的缓存“窗口”,把时间上最新的n份旧文件及其文件标识存储于“窗口”中,以文件标识为关键字,便于查找。)服务器把差分文件Delta1连同Content2的文件标识Mark2发送给客户端。但是,如果文件Delta1的长度大于文件Content2的长度,应该直接将最新文件Content2和相关文件标识Mark2返回给客户端。
步骤S306,当服务器收到的请求中带有文件标识Mark1,服务器上最新文件已经更新为Content2,服务器不能在缓存中找到Mark1对应的文件内容Content1时,服务器会直接将最新文件Content2和Content2的文件标识Mark2返回给客户端。
本发明是这样定义差分文件的:差分文件默认约定使用UTF-8编码,但可由服务端和客户端约定换用任何其他适合的编码格式。默认使用UTF-8编码是出于通用性的考虑,但考虑到减少文件占用的存储空间的需要,也可约定对于某个URL对应的网络文件及其差分文件使用其他适合的编码格式,使占用的存储空间最小。(可事先约定,也可在HTTP GET请求的包头中或者是在URL的参数中指定编码格式)例如,内容中大量出现汉字的文件,约定双方使用GB2312编码更为合适,这是因为UTF-8中一个汉字占用3个字节,而GB2312中一个汉字只占用2个字节。
差分文件由两类标识及其参数组成。两类标识分别是增加标识和删除标识。如图4所示,增加标识中写明新内容插入的地址(以字节计算),在标识后面直接跟上需添加的内容。删除标识中写明被删除内容的起始地址,以及被删除内容的长度。(均以字节计算)。可以这样定义增加标识和删除标识:增加标识=增加标识头+新内容插入的地址+新增的内容;删除标识=删除标识头+被删除内容的起始地址+被删除内容的长度。需要注意的是:
a)上述新内容插入的地址和被删除内容的起始地址均是以Mark1对应的旧文件Content1文件作为坐标的。
b)本发明建议标识不使用TLV结构,虽然TLV结构在解析方面的性能非常优秀,但是它占用的存储空间较大。本发明建议标识使用定长的结构。
c)如果增加标识中新内容插入的坐标是0,即在Content1起始位置插入新内容,可省掉这个增加标识。将需添加的内容直接放在差分文件的起始位置,解析差分文件时默认将需添加的内容从坐标0开始插入。
d)如果删除标识指示的删除内容是指从删除标识中的起始地址开始到Content1文件结尾的所有内容全部删除。可以省掉删除标识中的被删除内容的长度,但必须将这个删除标识置于差分文件的结尾。这样,解析差分文件时默认将从这个删除标识中的起始地址开始到Content1文件结尾的所有内容全部删除。如果删除标识指示的是要将Content1的所有内容全部删除,删除标识还可以省掉起始地址(因为起始地址为0)和被删除内容的长度,只保留一个删除标识头,但必须将这个删除标识置于差分文件的结尾。
e)增加标识和删除标识均以编码格式中,在纯文本文件中不可能出现的非文字编码作为开头,来与普通内容做区分,例如,可以使用美国信息互换标准代码(American Standard Codefor Information Interchange,简称为ASCII)编码中的“25EM纸尽”作为增加标识头,以“24CAN作废”作为删除标识头。解析差分文件时读到25就知道是增加标识,读到24就知道是删除标识。
f)差分算法设计如下:
设增加标识的长度是m字节(不算增加标识后面的新增内容的字节数),删除标识的长度是n字节。旧文件是Content1,新文件是Content2。扫描Content1,Content2,找到内容相同的子字串
Figure BDA0000113799440000061
(寻找子字串的文本比较算法并不属于本发明的范畴,建议使用目前常用的算法,例如M.D.Mcllroy在《An Algorithm for Differrential FileComparison》一文中提出的算法)。本发明是要从
Figure BDA0000113799440000063
中选择出适合进行本发明差分运算的S1,S2,……,SN(N<=NI),即:找到可以从Content2中省略,不需要再次传输到客户端的冗余字串。
我们定义S1
Figure BDA0000113799440000064
中第一个适合进行差分运算的子字串。我们按照下述(一)的方法从
Figure BDA0000113799440000065
中找到。设
Figure BDA0000113799440000066
中的某一个字串,
Figure BDA0000113799440000068
代表
Figure BDA0000113799440000069
的字串长度(以字节计算)。
(一),
Figure BDA00001137994400000610
只要满足以下三个条件中的任何一个,就是我们要寻找的S1
根据Content2,Content1在
Figure BDA00001137994400000611
和S′n+1之间内容的不同,存在如下述实例一至三所示的三种不同情况。
实例一
图5是根据本发明优选实施例一的冗余内容用增加标识和删除标识进行替换的示意图一,如图5所示,Content2在
Figure BDA0000113799440000071
和S′n+1之间新增内容P,Content1在
Figure BDA0000113799440000072
和S′n+1之间无内容:
在这种情况下,P需要被增加,但必须满足
Figure BDA0000113799440000073
我们才能用一个增加标识来指示在
Figure BDA0000113799440000074
的后面需要进行插入操作,否则是不划算的,
Figure BDA0000113799440000075
就不是我们要寻找的S1
图5中虚线方框代表
Figure BDA0000113799440000076
和S′n+1,点划线方框代表Content2相对Content1新增的内容P,而阴影块就代表使用增加标识后,差分文件比Content2节省的存储空间。
实例二
图6是根据本发明优选实施例二的冗余内容用增加标识和删除标识进行替换的示意图二,如图6所示,Content2在和S′n+1之间无内容,Content1在
Figure BDA0000113799440000078
和S′n+1之间有内容V:
在这种情况下,V需要被删除。但必须满足|V|>n,我们才能用一个删除标识来指示在
Figure BDA0000113799440000079
的后面需要进行删除操作。否则是不划算的,
Figure BDA00001137994400000710
就不是我们要寻找的S1
图6中虚线方框代表
Figure BDA00001137994400000711
和S′n+1,点划线方框代表Content2相对Content1应删除的内容V,而阴影实心块就代表使用删除标识后,差分文件比Content2节省的存储空间。
实例三
图7是根据本发明优选实施例三的冗余内容用增加标识和删除标识进行替换的示意图三,如图7所示,Content2在
Figure BDA00001137994400000712
和S′n+1之间新增内容P,Content1在和S′n+1之间有内容V:
这种情况是优选实施例一和优选实施例二的混合情况,只要满足
Figure BDA00001137994400000714
即可。我们先用一个增加标识来指示在
Figure BDA00001137994400000715
的后面需要进行插入操作,再用一个删除标识来指示在
Figure BDA00001137994400000716
的后面需要进行删除操作。如果不满足上述条件,替换就是不划算的,
Figure BDA00001137994400000717
就不是我们要寻找的S1。需要注意的是,不满足上述三种情况的将被放弃,继续寻找满足条件的S1
(二),如果找不到符合(一)的S1,应该这么做:
将Content2直接放在差分文件的起始位置,省略增加标识。
参考前述c)中的说明:将需添加的内容直接放在差分文件的起始位置,解析差分文件时默认将需添加的内容从坐标0开始插入。
然后,使用一个删除标识来指示Content1应该被删除。
参考前述d)中的说明:如果删除标识指示的是要将Content1的所有内容全部删除,删除标识可以省掉起始地址(因为起始地址为0)和被删除内容的长度,只保留一个删除标识头,但必须将这个删除标识置于差分文件的结尾。
需要注意的是,这样做,生成的差分文件与Content2相比只多1个字节(即删除标识头占用的那个字节)。
(三),如果找到了符合(一)的S1。因为S1是第一段内容相同的字串,所以在S1的前面可能存在三种情况:
Content2在S1之前有内容P,Content1在S1之前无内容,则将P直接放在差分文件的起始位置,省略增加标识。这样做,并没有增加冗余字节。
Content2在S1之前无内容,Content1在S1之前有内容V,则使用一个删除标识来指示V应该被删除。这样做,极端情况下有可能增加冗余字节,但冗余字节不会超过(n-1)个(当V只有1个字节时)。
Content2在S1之前有内容P,Content1在S1之前有内容V,则将P直接放在差分文件的起始位置,省略增加标识;然后使用一个删除标识来指示V应该被删除。这样做,极端情况下有可能增加冗余字节,但冗余字节不会超过(n-1)个。
(四),继续寻找第n段满足(一)中条件的Sn(n>=2),因为是第n段,所以不需要考虑Sn之前的情况,只考虑之后的情况,处理同(一)。找到Sn后,需要更新与相关的增加/删除标志,因为此时才能确定在的后面需要添加的内容和被删除的内容长度。
(五),如果SN是最后一个满足(一)中条件的子字串,并且如果SN后面需要使用一个删除标识,则根据前述d)中的说明,可以省略删除标识里的被删除内容的长度,但必须将这个删除标识置于差分文件的结尾。
在非极端情况下,根据上述算法生成的差分文件,相对Content2占用的存储空间更小。在极端条件下,差分文件可能比Content2最多冗余(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)定义第一种删除标识使用24CAN作废作为删除标识头。以24开头的删除标识后跟的被删除内容的起始地址以2个字节表示,被删除内容的长度以2个字节表示。
(6)定义第二种删除标识使用18DC2设备控制2作为删除标识头。但是以18开头的删除标识后跟的被删除内容的起始地址以3个字节表示,被删除内容的长度以3个字节表示。
(7)定义第三种删除标识使用17DC1设备控制1作为删除标识头。但是以17开头的删除标识后跟的被删除内容的起始地址以3个字节表示,被删除内容的长度以2个字节表示。
综上,在作为坐标的旧文件Content1的长度不超过64K时使用(3)定义的增加标识和(5)定义的删除标识。在Content1的长度大于64K、小于16M时使用(4)定义的增加标识和(6)、(7)定义的删除标识(根据被删除内容的长度是/否超过64K选择使用(6)/(7)定义的删除标识)。
其中,文件标识具有以下特征:
本实例使用网络文件的CRC16校验码作为它的文件标识。客户端传给服务器的旧文件Content1的文件标识Mark1可以使用以下两种方法的任意一种获得:
服务器生成,告诉客户端。例如,服务器在生成Content1时计算出文件标识Mark1,将此标识附带在HTTP GET回复的包头中(或者附带在回复正文中)发给客户端。
服务器和客户端用相同算法各自算出相同的标识。例如,服务器在生成Content1时计算出文件标识Mark1,但只是自己使用,不传递给客户端。客户端与服务器使用同一种CRC16算法,因此能够根据收到的网络文件Content1的内容算出相同的文件标识Mark1。
服务器缓存“窗口”具有如下特征:
本实例中,服务器为每个URL对应的网络文件都单独维护了一个长度为n的缓存“窗口”,把时间上最新的n份旧文件及其文件标识存储于“窗口”中,以文件标识为关键字。“窗口”装满后,向着时间上最新的方向“滑动”(即:按照先进先出策略丢弃最旧文件,放入最新文件)。服务器收到客户端通过HTTP GET请求的包头(或者URL的参数)带来的旧文件的文件标识后,在“窗口”中以文件标识为关键字查找缓存的旧文件。
其他应注意的处理包括:服务器需比较如下文件的大小:生成的差分文件Delta1;最新的网络文件Content2;Delta1经过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,用于向客户端发送网络文件当前的内容。
需要说明的是,装置实施例中描述的网络文件传输系统对应于上述的方法实施例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。
综上所述,根据本发明的上述实施例,提供了一种网络文件传输方法,包括:客户端向服务器发送携带有第一网络文件标识的网络文件请求消息,其中,网络文件请求消息用于客户端向服务器请求获取网络文件当前的内容,第一网络文件标识用于指示客户端已获取的网络文件的内容;客户端接收到来自服务器的差分文件,其中差分文件存储有网络文件当前的内容与客户端已获取的网络文件的内容的差值;客户端将差分文件与客户端已获取的网络文件的内容进行合成,得到网络文件当前的内容。本发明中,通过传输存储有网络文件当前内容与客户端已获取的网络文件的内容的差值的差分文件,解决了全文传输将很多冗余信息传输到客户端的问题,进而减少了传输流量并缩短了传输时间。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种网络文件传输方法,其特征在于包括:
客户端向服务器发送携带有第一网络文件标识的网络文件请求消息,其中,所述网络文件请求消息用于所述客户端向所述服务器请求获取网络文件当前的内容,所述第一网络文件标识用于指示所述客户端已获取的所述网络文件的内容;
所述客户端接收到来自所述服务器的差分文件,其中所述差分文件存储有所述网络文件当前的内容与所述客户端已获取的所述网络文件的内容的差值;
所述客户端将所述差分文件与所述客户端已获取的所述网络文件的内容进行合成,得到所述网络文件当前的内容。
2.根据权利要求1所述的方法,其特征在于,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括:所述客户端接收到来自所述服务器的第二网络文件标识,其中,所述第二网络文件标识用于指示所述网络文件当前的内容。
3.根据权利要求2所述的方法,其特征在于,在所述客户端接收到来自所述服务器的第二网络文件标识之后,还包括:在后续的所述客户端向所述服务器请求获取网络文件当前的内容的情况下,所述客户端向所述服务器发送携带有所述第二网络文件标识的网络文件请求消息。
4.根据权利要求1所述的方法,其特征在于,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括:
所述服务器在自身缓存中未找到所述第一网络文件标识指示的所述客户端已获取的所述网络文件的内容;
所述服务器向所述客户端发送所述网络文件当前的内容。
5.根据权利要求1所述的方法,其特征在于,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括:
所述服务器确定所述网络文件当前的内容的长度小于所述差分文件的长度;
所述服务器向所述客户端发送所述网络文件当前的内容。
6.根据权利要求1所述的方法,其特征在于,在客户端向服务器发送携带有第一网络文件标识的网络文件请求消息之后,还包括:
所述服务器确定所述网络文件当前的内容与所述客户端已获取的所述网络文件的内容相同;
所述服务器向所述客户端发送携带有原因值304的网络文件响应消息,其中所述原因值304用于指示所述网络文件当前的内容未变化。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述客户端接收到来自所述服务器的差分文件包括:所述客户端接收到来自所述服务器的通过HTTP标准的GZIP压缩的差分文件。
8.一种网络文件传输系统,其特征在于包括客户端和服务器,其中所述客户端包括:
第一发送模块,用于向所述服务器发送携带有第一网络文件标识的网络文件请求消息,其中,所述网络文件请求消息用于所述客户端向所述服务器请求获取网络文件当前的内容,所述第一网络文件标识用于指示所述客户端已获取的所述网络文件的内容;
第一接收模块,用于接收来自所述服务器的差分文件,其中所述差分文件存储有所述网络文件当前的内容与所述客户端已获取的所述网络文件的内容的差值;
合成模块,用于将所述差分文件与所述客户端已获取的所述网络文件的内容进行合成,得到所述网络文件当前的内容。
9.根据权利要求8所述的系统,其特征在于,所述客户端还包括:第二接收模块,用于接收来自所述服务器的第二网络文件标识,其中,所述第二网络文件标识用于指示所述网络文件当前的内容。
10.根据权利要求9所述的系统,其特征在于,所述客户端还包括:第二发送模块,用于在后续的向所述服务器请求获取网络文件当前的内容的情况下,向所述服务器发送携带有所述第二网络文件标识的网络文件请求消息。
CN2011103867880A 2011-11-29 2011-11-29 网络文件传输方法及系统 Pending CN102420822A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2011103867880A CN102420822A (zh) 2011-11-29 2011-11-29 网络文件传输方法及系统
PCT/CN2012/072392 WO2013078797A1 (zh) 2011-11-29 2012-03-15 网络文件传输方法及系统
US14/361,018 US20150006623A1 (en) 2011-11-29 2012-03-15 Method and System for Transmitting Network File
EP12853374.2A EP2782308A4 (en) 2011-11-29 2012-03-15 METHOD AND SYSTEM FOR TRANSMITTING NETWORK FILE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103867880A CN102420822A (zh) 2011-11-29 2011-11-29 网络文件传输方法及系统

Publications (1)

Publication Number Publication Date
CN102420822A true CN102420822A (zh) 2012-04-18

Family

ID=45945057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103867880A Pending CN102420822A (zh) 2011-11-29 2011-11-29 网络文件传输方法及系统

Country Status (4)

Country Link
US (1) US20150006623A1 (zh)
EP (1) EP2782308A4 (zh)
CN (1) CN102420822A (zh)
WO (1) WO2013078797A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605534A (zh) * 2013-10-31 2014-02-26 武汉极讯软件有限责任公司 图片加载方法及装置
CN104184814A (zh) * 2014-08-25 2014-12-03 中山市永衡日用制品有限公司 嵌入式固件差分升级的文件生成和合成的方法和系统
CN104866290A (zh) * 2014-02-24 2015-08-26 国际商业机器公司 一种用于数据传输的方法和装置
CN105681892A (zh) * 2016-02-19 2016-06-15 网宿科技股份有限公司 差分数据传输的方法、装置及系统
CN106713107A (zh) * 2015-11-13 2017-05-24 阿里巴巴集团控股有限公司 消息的获取方法、服务端、客户端及网关设备
US10121263B2 (en) 2013-10-31 2018-11-06 Uc Mobile Co., Ltd. Methods and devices for image loading and methods and devices for video playback
CN115086345A (zh) * 2022-05-13 2022-09-20 北京百度网讯科技有限公司 文件同步的方法、装置、电子设备及可读存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3251028A1 (en) 2015-01-29 2017-12-06 Longsand Limited Regenerated container file storing
CN114172897B (zh) * 2021-12-09 2023-08-25 西安邮电大学 一种PC端和Android端文件传输方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148340A (en) * 1998-04-30 2000-11-14 International Business Machines Corporation Method and system for differencing container files
CN101344400A (zh) * 2007-07-11 2009-01-14 株式会社日立制作所 地图数据分发系统及地图数据更新方法
CN101944032A (zh) * 2009-07-03 2011-01-12 华为技术有限公司 一种微件更新的方法及客户端、服务器及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356961B1 (en) * 1994-06-03 2002-03-12 Motorola, Inc. Method and apparatus for minimizing an amount of data communicated between devices and necessary to modify stored electronic documents
US7188214B1 (en) * 2001-08-07 2007-03-06 Digital River, Inc. Efficient compression using differential caching
US7395355B2 (en) * 2002-07-11 2008-07-01 Akamai Technologies, Inc. Method for caching and delivery of compressed content in a content delivery network
US20050010576A1 (en) * 2003-07-09 2005-01-13 Liwei Ren File differencing and updating engines
US7921078B2 (en) * 2005-04-20 2011-04-05 Sony Online Entertainment Llc System for negotiated differential compression
US20110289499A1 (en) * 2010-05-19 2011-11-24 Microsoft Corporation Techniques to automatically update software applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148340A (en) * 1998-04-30 2000-11-14 International Business Machines Corporation Method and system for differencing container files
CN101344400A (zh) * 2007-07-11 2009-01-14 株式会社日立制作所 地图数据分发系统及地图数据更新方法
CN101944032A (zh) * 2009-07-03 2011-01-12 华为技术有限公司 一种微件更新的方法及客户端、服务器及系统

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360694B2 (en) 2013-10-31 2019-07-23 Uc Mobile Co., Ltd. Methods and devices for image loading and methods and devices for video playback
CN103605534A (zh) * 2013-10-31 2014-02-26 武汉极讯软件有限责任公司 图片加载方法及装置
CN103605534B (zh) * 2013-10-31 2017-04-05 优视科技有限公司 图片加载方法及装置
US10121263B2 (en) 2013-10-31 2018-11-06 Uc Mobile Co., Ltd. Methods and devices for image loading and methods and devices for video playback
CN104866290A (zh) * 2014-02-24 2015-08-26 国际商业机器公司 一种用于数据传输的方法和装置
US9876845B2 (en) 2014-02-24 2018-01-23 International Business Machines Corporation Data transmission
CN104866290B (zh) * 2014-02-24 2018-09-25 国际商业机器公司 一种用于数据传输的方法和装置
CN104184814A (zh) * 2014-08-25 2014-12-03 中山市永衡日用制品有限公司 嵌入式固件差分升级的文件生成和合成的方法和系统
CN106713107A (zh) * 2015-11-13 2017-05-24 阿里巴巴集团控股有限公司 消息的获取方法、服务端、客户端及网关设备
CN106713107B (zh) * 2015-11-13 2020-03-20 阿里巴巴集团控股有限公司 消息的获取方法、服务端、客户端及网关设备
CN105681892A (zh) * 2016-02-19 2016-06-15 网宿科技股份有限公司 差分数据传输的方法、装置及系统
CN105681892B (zh) * 2016-02-19 2019-03-15 网宿科技股份有限公司 差分数据传输的方法、装置及系统
CN115086345A (zh) * 2022-05-13 2022-09-20 北京百度网讯科技有限公司 文件同步的方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
WO2013078797A1 (zh) 2013-06-06
EP2782308A4 (en) 2015-07-22
US20150006623A1 (en) 2015-01-01
EP2782308A1 (en) 2014-09-24

Similar Documents

Publication Publication Date Title
CN102420822A (zh) 网络文件传输方法及系统
JP5192798B2 (ja) サービス提供システム、ゲートウェイ、およびサーバ
US7660844B2 (en) Network service system and program using data processing
US8762332B2 (en) Systems and method for facilitating the synchronization of data on multiple user computers
CN102882974B (zh) 一种通过网站识别版本号节省网站访问资源的方法
CN103389969B (zh) 一种用于移动终端预览pdf文件的方法、装置和系统
US9456048B2 (en) System, method, and computer program product for server side processing in a mobile device environment
JP2005530266A (ja) Xml文書の構造化ストリーミング方法及び装置
CN101346689A (zh) 压缩模式表示对象和用于元数据处理的方法
CN102402558A (zh) 一种提供包含网页地址的消息的方法和系统
CN103222272A (zh) 用于视频缓存索引的系统和方法
US20040199550A1 (en) Information management technique
JP5753946B2 (ja) フォントファイルをダウンロードする方法およびシステム
CN102571966A (zh) 一种大型xml文件的网络传输方法
CN102916991B (zh) 一种数据传输方法、系统以及装置
CN110688596B (zh) 静态网页更新方法、装置、计算机设备和存储介质
CN102333092A (zh) 一种网络用户识别的方法及其应用服务器
US8788612B1 (en) Cache based enhancement to optimization protocol
CN103347092A (zh) 一种识别缓存文件的方法及装置
CN106790334A (zh) 一种页面数据传输方法及系统
CN107463536A (zh) 一种实现安卓设备上在线预览服务器上文档的方法及系统
US6714950B1 (en) Methods for reproducing and recreating original data
CN106959975B (zh) 一种转码资源缓存处理方法、装置及设备
CN101702732A (zh) 一种文件同步方法及文件同步系统
CN105592143B (zh) 一种文件加载方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120418