基于内容的短链接系统及实现方法

文档序号:6425190阅读:125来源:国知局
专利名称:基于内容的短链接系统及实现方法
技术领域
本发明涉及一种短链接系统及实现方法,特别是涉及ー种基于内容的短链接系统及实现方法。
背景技术
微博(MicroBlog)是ー个基于用户关系的信息分享、传播以及获取平台,用户可以通过web (互联网)、wap (Wireless Application Protocol,无线应用协议)以及各种客户端组件个人社区,以140字左右的文字更新信息,并实现即 时分享。由于微博具有便捷性、原创性等特点,应用非常广泛。随着微博的流行,由于其内容有着字数的限制,所以大家纷纷采用短链接来解决引用链接过长,占掉有效字数的问题。现在的短链接,都是基于网址的。为了表达越来越丰富的内容,网址链接越来越长。现有的短链接服务,会把需要缩短的网址,进行hash离散运算,得到一串数字之后,再使用多进制数字,来表达hash之后的唯一結果。然后使用key-value数据库对短链接和原网址链接进行存储。但是,现在的短链接通常是使用链接为唯一标示的,也就是说ー个短链接对应ー个链接。如果有多个链接对应的实际内容是相同的,特别是ー些多媒体信息的时候,这样就不利于内容访问的容错和负载均衡。

发明内容
本发明要解决的技术问题是提供一种基于内容的短链接系统及实现方法,以实现多个链接对应的实际内容相同时的负载均衡。为解决上述技术问题,本发明的基于内容的短链接系统,包括数据生成模块,用于将原始内容经hash运算,生成hash(哈希)数据;其中,该原始内容包括图片、文件、音频、视频等的内容;短链接生成模块,用于将hash数据经多进制数字的编码进行压缩,形成原始内容所对应的短链接;链接存储模块,用于对原始内容的短链接和原始内容的地址链接进行存储,如可以key-value数据库的方式进行存储。所述多进制数字,包括一套允许在url地址上出现的字符形成的多进制数字。另外,本发明的基于内容的短链接系统,还包括检查模块,用于定期检查短链接库中所存放的原始链接所指向的内容,在内容发生变化之后,自动失效地址库中的短链接到该原始链接的指向。再者,本发明的基于内容的短链接系统的实现方法,包括步骤(I)将需要缩短的地址的原始内容,经数据生成模块,生成hash数据;(2)将hash数据经短链接生成模块,形成原始内容所对应的短链接;(3)将原始内容的短链接和原始内容的地址链接存储到链接存储模块;
(4)当用户拿着短链接进行解析时,短链接网址会根据链接存储模块中的key-value进行检索,并将原来的网址链接返还回来,进行地址重定向。所述短链接中,根据原始内容使用的是否为无损压缩源,进行以下的短链接生成处理(I)如果原始内容使用的是无损压缩源,则将压缩内容进行解压,生成原始内容数据,再对这些数据进行hash数据处理,再使用多进制数字进行压缩,形成原始内容所对应的短链接;(2)如果原始内容使用的是有损压缩源,那么如果原始内容一致,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成一致的原始内容所对应的短链接;如果原始内容不一致的话,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成不同的原始内容所对应的短链接。
上述方法,还可包括步骤(5)检查模块定期扫描短链接库中所存放的原始链接所指向的内容,在内容发生变化之后,自动失效地址库中短链接到该链接的指向。本发明通过基于目标地址的实际内容进行hash运算,然后根据hash的結果,生成短链接。如果目标地址的内容是相同的,那么生成的hash结果也应该是相同的,也就可以分配相同的短链接。当有用户需要访问这些短链接的时候,短链接服务器随机或根据负载均衡算法,给出多个地址中的ー个,实现了负载均衡的目的。因此,本发明与传统的短链接的差异在干,对于相同的内容,其短链接地址是相同的。另外,本系统还有ー个流程,就是地址有效性检查。传统的短链接,是没法对地址的有效性进行检查的,因为他们不记录原地址的内容。而本本发明的系统可定期扫描短链接库中所存放的原始链接所指向的内容,如果内容不一致了,则删除这个原地址,以便实时确定短链接的有效性,方便用户使用。


下面结合附图与具体实施方式
对本发明作进ー步详细的说明图I是本发明的原始内容所对应的短链接的形成示意图;图2是本发明的短链接的解析示意图。
具体实施例方式本发明的基于内容的短链接系统,包括数据生成模块,用于将网址上的原始内容经hash运算,生成hash数据;其中,该原始内容包括图片、文件、音频、视频等的内容;关于hash运算,可按现有的hash运算进行,{列如,可参考 http: //zh. wikipedia. orR/wiki/MD5 所介绍的那样;短链接生成模块,用于将hash数据经多进制数字的编码进行压缩,形成原始内容所对应的短链接;链接存储模块,用于将原始内容的短链接和原始内容的地址链接,存储到key-value 数据库;检查模块,用于定期检查短链接库中所存放的原始链接所指向的内容,在内容发生变化之后,自动失效地址库中的短链接到该原始链接的指向。
其中,关于多进制数字同样ー个数字,ニ进制的位数最长,因此,ニ进制的要比四进制的位数多,十进制的会比四进制、八进制的短,十六进制的更短。每ー个位数所能够表达的变化越多,同一个数字所需占用的位数就越短。比如80进制,每一位能够表达80种变化,其长度,肯定要比直接原来MD5算法所得到的16进制的数字短很多。因此,本实施例中,可以采用以下的一套多进制数字,来缩短hash结果的长度使用所有允许在url地址(Uniform/Universal Resource Locator,网页地址)上出现的字符,来形成一套多进制的数字,比如0 9,a z再加上A Z,也就是62个字符,形成ー套62进制的编码,再加上允许在url中出现的“/. % &”等特殊字符,这个编码的进制可以进ー步的增加,长度可以进一歩的降低。那么就可以将同一段数字的长度进一歩的缩短。比如,80在ニ进制中是ー个7位数,如果是ニ进制中的7个I的话,这个数字就是128,但允许出现在url中的字符又没有那么多,因此,可以采用6位ニ进制数,也就是64种变化。使用64的字符来代表这64种变化,其中大小写字母再加上十个数字,加在一起,是 62个,再加上在url中比较常见的下划线“ 和百分号“ %”,正好64个。如果有些web服务器或浏览器有兼容性问题的话,也可以换成或“ ? ”等字符。而对于目前最常用的多进制舍去算法,形成短链接的处理过程,现以jpg格式存储的图片为例,说明如下(I)先将图片的数据读入内存,然后对其进行hash转换成为ー个128位ニ进制的
数字;(2)然后再对这个ニ进制的数字,进行多位编码,具体如下I)将长网址md5生成32位签名串,分为4段,每段8个字节;2)对这四段循环处理,取8个字节,将它看成16进制串与0X3fffffff(30位I)与操作,即超过30位的忽略处理;3)将这30位分成5段,每6位的数字作为字母表的索引取得特定字符,依次进行获得5位字符串;4)总的md5串可以获得4个5位串;取里面的任意ー个就可作为这个长url的短url地址。因此,本实施例中采用的多进制数字算法,相对于现有的最常用的多进制舍去算法,字符的变化更加多。在短链接中,本发明的系统可根据原始内容使用的是否为无损压缩源,进行以下的短链接生成处理(如图I所示)(I)如果原始内容使用的是无损压缩源,也就是可以还原出唯一的无压缩内容;将压缩内容进行解压,生成原始内容数据,再对这些数据进行hash数据处理,再使用上述的多进制数字进行压缩,形成原始内容所对应的短链接;其中,对于无损压缩的原始内容,即使格式不同,只要解压后的原始数据一致,那么得到的短链接也是ー样的;(2)如果原始内容使用的是有损压缩源,则只对原始内容进行比较,如果原始内容一致,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成一致的原始内容所对应的短链接;
如果原始内容不一致的话,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成不同的原始内容所对应的短链接。对于上述的基于内容的短链接系统,其实现方法,包括步骤(I)将需要缩短的地址的原始内容,经数据生成模块,生成hash数据;(2)将hash数据经短链接生成模块,形成原始内容所对应的短链接;(3)将原始内容的短链接和原始内容的地址链接存储到链接存储模块(即key-value 数据库);(4)当用户拿着短链接进行解析时,短链接网址会根据链接存储模块中的key-value进行检索,并将原来的网址链接返还回来,进行地址重定向;(5)检查模块定期的对记录的原地址进行检查,重新得到地址所指向的内容,并将 内容进行hash运算之后,校验ー下是否和储存的样本一致。如果不一致了,则删除这个原地址。再有用户使用这个短链接的时候,那个损坏掉的原地址,就不会被交付给用户了。如果关于ー个内容的所有原地址都损坏了,则不再进行解析,直接在用户申请的时候,返回失败信息。本发明中,为了提高短链接的解析速度,采用key-value结构来进行数据存储。ー个collection以hash结果为key,以短链接为value,另外ー个,则以短链接为key,以原始链接的列表为value。当用户存入一个短链接的时候,先进行hash运算,然后导第一个collection中去寻■找key,如果没找到,则同时插入resource2url和url2url (图2)。如果在resource2url中找到了 hash结果的key,那么就直接将resource2url中的value也就是短链接拿出来作为key到url2url中去取出value, source-url-list,然后将新的url追加到后面去。在用户拿着短链接进行解析的时候,只要到Url2Url中,根据短链接的key,取出source-url-list,然后根据分隔符(比如是‘{} ’或‘〈>’),将多个地址解析出来,再随机给出其中ー个。当系统进行原始地址复查的时候,则需要遍历ur 12urI,将原始地址所指向的内容提取出来,进行hash之后,与存放在url2url中的resource-hash进行比较,如果相同,则说明内容有效;如果不同,则说明原始链接无效了。在验证结束之后,将所有通过验证的地址,重新与入 source-url-list。综上所述,采用本发明的系统,当用户进行短链接地址解析的时候,短链接服务器会自动的进行负载均衡。负载均衡,可以采用最简单的随机数算法,当一个短链接被请求的时候,短链接服务器,随机的给出ー个原内容的地址,进行跳转。针对同一个内容的不同资源,其被调用的机会是均等的,即实现了负载均衡的目的。另外,通过本发明系统的定期短链接地址的有效性检查,了解原始内容的变化,方便用户使用。
权利要求
1.一种基于内容的短链接系统,其特征在干包括 数据生成模块,用于将原始内容经hash运算,生成hash数据; 短链接生成模块,用于将hash数据经多进制数字的编码进行压缩,形成原始内容所对应的短链接; 链接存储模块,用于对原始内容的短链接和原始内容的地址链接进行存储。
2.如权利要求I所述的系统,其特征在于所述原始内容包括图片、文件、音频、视频的内容。
3.如权利要求I所述的系统,其特征在于所述多进制数字,包括一套允许在url地址上出现的字符形成的多进制数字。
4.如权利要求I所述的系统,其特征在于所述链接存储模块中,以key-value数据库的方式进行存储。
5.如权利要求I所述的系统,其特征在于还包括检查模块,用于定期检查短链接库中所存放的原始链接所指向的内容,在内容发生变化之后,自动失效地址库中的短链接到该原始链接的指向。
6.如权利要求I所述的基于内容的短链接系统的实现方法,包括步骤 (1)将需要缩短的地址的原始内容,经数据生成模块,生成hash数据; (2)将hash数据经短链接生成模块,形成原始内容所对应的短链接; (3)将原始内容的短链接和原始内容的地址链接存储到链接存储模块; (4)当用户拿着短链接进行解析时,短链接网址会根据链接存储模块中的key-value进行检索,并将原来的网址链接返还回来,进行地址重定向。
7.如权利要求6所述的实现方法,其特征在于所述短链接中,根据原始内容使用的是否为无损压缩源,进行以下的短链接生成处理 (1)如果原始内容使用的是无损压缩源,则将压缩内容进行解压,生成原始内容数据,再对这些数据进行hash数据处理,再使用多进制数字进行压縮,形成原始内容所对应的短链接; (2)如果原始内容使用的是有损压缩源,那么如果原始内容一致,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成一致的原始内容所对应的短链接; 如果原始内容不一致,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成不同的原始内容所对应的短链接。
8.如权利要求6所述的实现方法,其特征在干还包括步骤(5)检查模块定期扫描短链接库中所存放的原始链接所指向的内容,在内容发生变化之后,自动失效地址库中短链接到该链接的指向。
全文摘要
本发明公开了一种基于内容的短链接系统及实现方法,该系统包括数据生成模块、短链接生成模块、链接存储模块;其实现方法,包括1)将需要缩短的地址的原始内容,生成hash数据;2)将hash数据经短链接生成模块,形成原始内容所对应的短链接;3)将原始内容的短链接和原始内容的地址链接存储到链接存储模块;4)当用户拿着短链接进行解析时,短链接网址会根据链接存储模块中的key-value进行检索,并将原来的网址链接返还回来,进行地址重定向。本发明实现了多个链接对应的实际内容相同时的负载均衡及实时确定短链接的有效性,方便用户使用。
文档编号G06F17/30GK102810089SQ20111014235
公开日2012年12月5日 申请日期2011年5月30日 优先权日2011年5月30日
发明者范路 申请人:盛乐信息技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1