一种针对移动网络应用的自适应HTTP消息压缩方法与流程

文档序号:12699231阅读:256来源:国知局
一种针对移动网络应用的自适应HTTP消息压缩方法与流程

本发明提供了一种针对移动互联网应用的自适应式的HTTP消息压缩方法,涉及移动互联网应用,HTTP协议,HTTP压缩,尤其涉及一种适用于小文本消息的压缩方法。



背景技术:

随着智能移动设备和移动互联网应用的飞速发展,HTTP几乎已经快成为一种通用的Web标准,Web Services、REST、Open API、OAuth等等都是基于HTTP协议的。它已经不仅仅是Hyper Text的传输标准了,几乎所有数据的传输(多媒体、XML、JSON)都可以采用HTTP只需要按照web开发流程就可以快速,稳定,高效的架起一个服务器了。



技术实现要素:

本发明的目的在于针对现有的移动互联网产品前后端消息交互方式,提供一种根据传输内容大小不同而采取不同压缩方式的压缩方法,一定程度地压缩前后端交互过程中经由网络传输的HTTP消息,从而有效地节约手机端的流量消耗。

本发明的目的是通过以下技术方案来实现的:在移动端与服务端进行HTTP消息传递时,对待传输的消息体的大小进行计算,提供自适应的消息压缩方法,根据消息体大小不同,判断采用不同压缩方式进行压缩,将压缩后的消息发送到消息接收方,消息接收方通过解压方法将消息解压成实际需要的消息格式。具体包括以下步骤:

(1)消息发送方的HTTP消息压缩:消息发送方提供两种不同的压缩方法,第一种为基于LZ77算法以及哈夫曼编码的压缩方法,第二种为基于二进制编码的压缩方法。消息发送方采用一种自适应的方式进行消息压缩,即自动选择上述两种压缩方法中的一种进行消息压缩,并修改HTTP头信息中的Content-Type信息,以标识消息经由何种压缩方法压缩,将处理后的消息发送到消息接收方。

(2)消息接收方的HTTP消息解压缩:消息接收方获取到HTTP消息后,根据头信息中的Content-Type,将消息体进行解压缩,恢复原始消息体内容,并且修改HTTP头信息中的Content-Type为原始消息格式。

进一步地,所述步骤(1)中自适应的方式选择压缩方法具体为:同时采用两种压缩方法压缩消息体,随后将二者的压缩结果进行比较,选取压缩效果好的进行传输,这种方式能够更精准的节约带宽,但是一定程度上会增加消息发送端的计算资源消耗以及增加了压缩消息所消耗的时间。

进一步地,所述步骤(1)中自适应的方式选择压缩方法具体为:制定一个阈值,根据消息体大小在哪一个区间而采用不同的压缩方式。经过调研和反复实验,第一种压缩方法对大文本压缩效果较好,对小于一定大小的文本压缩效果较差甚至无效果;第二种压缩方法对小文本压缩效果较好,对大于一定大小的文本压缩效果较差甚至无效果。基于以上实验结论,将原始消息体大小与阈值进行比较,大于阈值则采用第一种压缩方法进行压缩,小于阈值则采用第二种压缩方法进行压缩。所述阈值的范围为[2kb,5kb]。

进一步地,所述基于LZ77算法以及哈夫曼编码的压缩方法具体为:对原始文本进行LZ77算法压缩后,再进行动态的哈夫曼编码压缩;所述LZ77算法压缩具体为:如果文本中有两块内容相同的话,那么只要知道前一块的位置和大小,就可以确定后一块的内容。进而采用两者之间的距离与相同内容的长度这样一对信息,来替换后一块内容,由于替换后的内容长度会小于被替换内容的大小,所以文本得到了压缩;所述哈夫曼编码压缩具体为:哈夫曼编码为一种可变字长的编码方式,把文本中一定位长的值看作符号,比如把8位长的256种值,也就是字节的256种值看作是符号。根据这些符号在文件中出现的频率,对这些符号重新编码。对于出现次数非常多的,用较少的位来表示,对于出现次数非常少的,用较多的位来表示,这样编码后,文本的一些部分位数变少了,一些部分位数变多了,由于变小的部分比变大的部分多,整个文本的大小还是会减小,所以文本得到了压缩。

进一步地,所述基于二进制编码的压缩方法具体为:传统的HTTP消息序列化方式一般采用字节流或字符流传输,例如目前常见的JSON或XML等格式,这种序列化方式是将对象属性以键值对的形式组织成字符串的一种编码过程,为描述数据结构而增加了很多且重复的属性字符串以及标点符号,从体积上看会比原始内容增加很多。这也意味着字节流或字符流的序列化方式在传输内容上有较大的可压缩空间。二进制序列化方式,则是直接将对象的内存映射抽取出来直接形成二进制流,相比之下省略了JSON或XML格式下冗余的属性信息占用的传输空间,从而使HTTP消息体大小得到了压缩。

本发明的有益效果是:本发明提供一种根据传输内容大小不同而采取不同压缩方式的压缩方法,一定程度地压缩前后端交互过程中经由网络传输的HTTP消息,从而有效地节约手机端的流量消耗。

附图说明

图1是本发明的采用择优策略的自适应压缩方法的消息发送端流程示意图;

图2是本发明的采用阈值策略的自适应压缩方法的消息发送端流程示意图;

图3是本发明的自适应压缩方法的消息接收端流程示意图。

具体实施方式

下面结合附图详细描述本发明,本发明的目的和效果将变得更加明显。

本发明一种针对移动互联网应用节约带宽的自适应式的HTTP消息压缩方法,具体实施方式包括以下步骤:

(1)消息发送端进行消息压缩的流程,在实际应用中,根据采用不同的自适应压缩策略而略有不同。

采用两种压缩方式并行压缩,根据压缩效果择优发送的策略下的流程如图1所示,首先并行进行两种压缩方式对消息体进行压缩,一种是基于LZ77算法或变体算法以及哈夫曼编码的压缩方法,可选用GZIP压缩方式实现,GZIP方法是对原始文本进行LZ77变体算法压缩后,再进行动态的哈弗曼编码压缩的一种方法;另一种是基于二进制编码的压缩方法,可采用Google Protocol Buffer(以下简称为GPB)编码格式来实现。比较两种压缩方法的压缩结果,选择压缩后体积更小的结果发送。

采用消息体大小阈值策略的流程如图2所示,消息发送端提供一个拦截器,首先在消息发送之前,计算原始消息体的大小,以二进制位为单位,根据消息体大小判断采用何种消息压缩方式。消息发送端的拦截器提供两种不同的压缩方式,一种是基于LZ77算法或变体算法以及哈夫曼编码的压缩方法,可选用GZIP压缩方式实现,GZIP方法是对原始文本进行LZ77变体算法压缩后,再进行动态的哈弗曼编码压缩的一种方法;另一种是基于二进制编码的压缩方法,可采用Google Protocol Buffer(以下简称为GPB)编码格式来实现。

采用阈值策略的自适应方法时,需要制定一个阈值,作为选用何种压缩方案的依据。经过反复实验,已发现GZIP压缩方法对小于一定大小的文本内容压缩效果较差,GPB编码方法对大于一定大小的文本压缩效果较差。判定阈值可以设定为[2kb,5kb],优选2kb,即待传输消息体的大小大于2kb,则调用GZIP压缩方法进行压缩,待传输消息体大小小于2kb,则调用GPB压缩方法将原始内容转换成GPB编码格式。

采用根据压缩效果择优的策略,可以确保体积压缩最小化,以更加精确的节约网络传输流量,另一方面则会更多的消耗计算资源以及增加了消息压缩所用的时间。采用阈值策略的自适应压缩方法,根据经验预测大概率下应采用何种压缩方法能使压缩结果最优,可以很好的节约压缩消耗的时间成本与计算资源,更加省电以及降低网络延时。在实际实施中,可结合实际需求,具体情况具体分析,综合考虑选择何种自适应压缩策略。

压缩后的消息需要在头信息中修改消息类型属性,以便消息接收方判定消息体是经由何种压缩方式压缩的。之后消息发送端将处理好的HTTP消息发送给消息接收端。

(2)消息接收端进行消息解压缩的流程如图2所示,消息接收端提供一个拦截器,首先,在获取到HTTP消息时,解析头信息,根据消息格式不同,相应的调用不同的解压缩方法对收到的消息体进行解压缩:相对于步骤(1),消息接收端的拦截器提供两种不同的解压缩方法,消息格式判定为GZIP编码时,调用GZIP解压缩方法将消息体转换成原始消息格式,并修改HTTP头信息中的消息格式为原始消息格式;消息格式判定为GPB编码时,调用GPB解压缩方法将消息体转换成原始消息格式,并修改HTTP头信息中的消息格式为原始消息格式。拦截器将转换后的HTTP消息发送给真正的消息接收接口。

进一步地,在实际应用中,手机端与服务端需要双向进行消息压缩与解压缩,即手机端应用既要作为步骤(1)所述的消息发送方,又要作为步骤(2)所述的消息接收方;服务端也是同理。所以,手机端与服务端都需要同时配有消息压缩拦截器和消息解压缩拦截器。

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