一种节省客户端和服务器交互时的传输流量的方法和模块的制作方法

文档序号:9202694阅读:478来源:国知局
一种节省客户端和服务器交互时的传输流量的方法和模块的制作方法【
技术领域
】[0001]本发明属于互联网通信领域,尤其涉及一种节省客户端和服务器交互时的传输流量的方法和模块。【
背景技术
】[0002]目前,互联网上客户端和服务器端的交互,普遍采用HTTP协议。为获取好的用户体验,一般都采用JSON格式的数据。所谓JSON(JavaScriptObjectNotat1n)格式是一种轻量级的数据交换格式,这种格式的数据易于人阅读和编写,同时也易于机器解析和生成。JSON格式是基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdit1n-December1999的一个子集。JSON格式采用完全独立于语言的文本格式,但是也使用了类似于C语言家族(包括C,C++,C#,Java,JavaScript,Perl,Python等)的习惯,这些特性使JSON成为理想的数据交换语言。[0003]JSON建构于两种结构:a、“名称/值”对的集合(Acollect1nofname/valuepairs),不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dict1nary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray);b、值的有序列表(Anorderedlistofvalues),在大部分语言中,它被理解为数组(array)。当前,在程序员编码过程中,为了使代码具有可读性和可维护性,定义的JSON数据中的key通常是含义显见的字符串,例如JSON对象:[{"msgId":"618","ower":l,"logoImgUrl":"merchantLogo/81374636245200501.jpg","time〃:"2013-08-0117:56:53〃,"type":〃1〃,"serverlnfo":{〃message_id〃:〃142〃,〃crm_I,////////-1.I////////I,.I////////,..1//^C\ΛΛ^^IJcard_type:,sample—id:,merchant_id:,quest1n_id:zl4,market_I////1—////1.1//^o^?//.j”ΓΓ?j,//////^j.jI////////j.////////1.research:5,card—id:37I,items:LIcontent:,title:,time:,丄InkUrl":"","locat1n":"",〃imageUrl〃:〃〃,"itemld":"142","type":5}]}]。但在数据传输过程中,这些JSON数据中的key需要占用很大的数据流量。【
发明内容】[0004]本发明的目的在于:提供一种节省客户端和服务器交互时的传输流量的方法和模块,旨在解决现有的JSON数据传输占用流量较大的问题。[0005]本发明的目的是这样实现的:一种节省客户端和服务器交互时的传输流量的方法,将客户端要传输给服务器的JSON数据根据映射字典文件进行压缩优化,所述映射字典文件是预定义的JSON数据中的key及对应的映射定义的集合。[0006]所述方法具体包括:客户端获取服务器上的映射字典文件,并保持客户端上的映射字典文件与服务器上的映射字典文件始终同步一致;客户端根据要传输给服务器的JSON格式的请求数据中的原始key在映射字典文件中查找匹配的映射定义;客户端将查找到的映射定义替换请求数据中的原始key后,将压缩优化后的请求数据发送给服务器。[0007]所述方法还包括:服务器根据客户端发送的压缩优化后的请求数据中的映射定义在映射字典文件中查找对应的原始key,并用查找到的原始key替换对应的映射定义。[0008]根据服务器不同接口定义不同的映射字典文件。[0009]客户端向服务器请求并获取对应的访问接口的映射字典文件,并缓存到本地。[0010]所述映射字典文件的格式为{固定key1:接口名,固定key2:版本,[{原始key名1:缩写key名1},...,{原始key名N:缩写key名N}]},N为自然数。[0011]本发明的另一目的在于:提供一种优化客户端传输数据的模块,包括:文件获取单元,用于向服务器请求并获取映射字典文件,所述映射字典文件是预定义的JSON数据中的key及对应的映射定义的集合;数据转换模块,用于根据客户端的JSON格式的请求数据中的原始key在文件获取单元获取的映射字典文件中查找对应的映射定义,并用查找到的映射定义替换对应的原始key后输出。[0012]本发明还有一目的在于:提供一种含有如上所述的优化客户端传输数据的模块的客户端。[0013]本发明还有一目的在于:提供一种服务器上的数据恢复模块,包括:文件输出单元,用于存储映射字典文件,并根据客户端的请求将映射字典文件发送给客户端,所述映射字典文件是预定义的JSON数据中的key及对应的映射定义的集合;数据转换模块,用于根据客户端发送的压缩优化后的数据中的映射定义在映射字典文件中查找对应的原始key,并用查找到的原始key替换对应的映射定义后输出。[0014]本发明还有一目的在于:提供一种节省客户端和服务器交互时的传输流量的系统,包括客户端上的数据优化模块和服务器上的数据恢复模块,所述数据优化模块包括:文件获取单元,用于向服务器请求并获取映射字典文件,所述映射字典文件是预定义的JSON数据中的key及对应的映射定义的集合;数据转换模块,用于根据客户端的JSON格式的请求数据中的原始key在文件获取单元获取的映射字典文件中查找对应的映射定义,并用查找到的映射定义替换对应的原始key后输出;所述数据恢复模块包括文件输出单元,用于存储映射字典文件,并根据客户端的请求将映射字典文件发送给客户端;数据转换模块,用于根据客户端发送的压缩优化后的数据中的映射定义在映射字典文件中查找对应的原始key,并用查找到的原始key替换对应的映射定义后输出。[0015]本发明的突出优点是:本发明通过在客户端和服务器端同步映射字典,并根据映射字典压缩优化传输数据,节省了传输流量,同时仍保持客户端和服务器端的代码的可读性、可维护性。【附图说明】[0016]图1是本发明实施例提供的节省客户端和服务器交互时的传输流量的方法的流程时序图。【具体实施方式】[0017]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0018]本发明通过在客户端和服务器端同步映射字典,并根据映射字典压缩优化传输数据,节省了传输流量,同时仍保持客户端和服务器端的代码的可读性、可维护性。[0019]具体来说,就是对于JSON数据的key都分别定义一个缩写,例如:定义key:message_id的缩写为f,JSON数据中的key及其对应的缩写即构成了映射字典,可以根据服务器不同的接口定义不同的映射字典,也可以将所有key及其缩写集成于一个映射字典中。[0020]图1示出了本发明实施例提供的节省客户端和服务器交互时的传输流量的方法的流程时序。[0021]用户固定/移动通信终端(即客户端)上的应用软件获取应用服务器上的映射字典文件,并保持用户终端上的映射字典文件与应用服务器端的映射字典文件始终同步一致。[0022]在本发明实施例中,根据服务器不同接口定义不同的映射字典。当应用软件启动时,向服务器请求各接口(或者对应的访问接口)的映射字典文件,该映射字典文件可选用如下格式:{固定keyl:接口名,固定key2:版本,[{原始key名1:缩写key名1},...当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1