CN102810089B - 基于内容的短链接***及实现方法 - Google Patents
基于内容的短链接***及实现方法 Download PDFInfo
- Publication number
- CN102810089B CN102810089B CN201110142354.6A CN201110142354A CN102810089B CN 102810089 B CN102810089 B CN 102810089B CN 201110142354 A CN201110142354 A CN 201110142354A CN 102810089 B CN102810089 B CN 102810089B
- Authority
- CN
- China
- Prior art keywords
- short chain
- original
- link
- original contents
- key
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于内容的短链接***及实现方法,该***包括:数据生成模块、短链接生成模块、链接存储模块;其实现方法,包括:1)将需要缩短的地址的原始内容,生成hash数据;2)将hash数据经短链接生成模块,形成原始内容所对应的短链接;3)将原始内容的短链接和原始内容的地址链接存储到链接存储模块;4)当用户拿着短链接进行解析时,短链接网址会根据链接存储模块中的key‑value进行检索,并将原来的网址链接返还回来,进行地址重定向。本发明实现了多个链接对应的实际内容相同时的负载均衡及实时确定短链接的有效性,方便用户使用。
Description
技术领域
本发明涉及一种短链接***及实现方法,特别是涉及一种基于内容的短链接***及实现方法。
背景技术
微博(MicroBlog)是一个基于用户关系的信息分享、传播以及获取平台,用户可以通过web(互联网)、wap(Wireless Application Protocol,无线应用协议)以及各种客户端组件个人社区,以140字左右的文字更新信息,并实现即时分享。由于微博具有便捷性、原创性等特点,应用非常广泛。
随着微博的流行,由于其内容有着字数的限制,所以大家纷纷采用短链接来解决引用链接过长,占掉有效字数的问题。
现在的短链接,都是基于网址的。为了表达越来越丰富的内容,网址链接越来越长。现有的短链接服务,会把需要缩短的网址,进行hash离散运算,得到一串数字之后,再使用多进制数字,来表达hash之后的唯一结果。然后使用key-value数据库对短链接和原网址链接进行存储。但是,现在的短链接通常是使用链接为唯一标示的,也就是说一个短链接对应一个链接。如果有多个链接对应的实际内容是相同的,特别是一些多媒体信息的时候,这样就不利于内容访问的容错和负载均衡。
发明内容
本发明要解决的技术问题是提供一种基于内容的短链接***及实现方法,以实现多个链接对应的实际内容相同时的负载均衡。
为解决上述技术问题,本发明的基于内容的短链接***,包括:
数据生成模块,用于将原始内容经hash运算,生成hash(哈希)数据;其中,该原始内容包括:图片、文件、音频、视频等的内容;
短链接生成模块,用于将hash数据经多进制数字的编码进行压缩,形成原始内容所对应的短链接;
链接存储模块,用于对原始内容的短链接和原始内容的地址链接进行存储,如可以key-value数据库的方式进行存储。
所述多进制数字,包括:一套允许在url地址上出现的字符形成的多进制数字。
另外,本发明的基于内容的短链接***,还包括:检查模块,用于定期检查短链接库中所存放的原始链接所指向的内容,在内容发生变化之后,自动失效地址库中的短链接到该原始链接的指向。
再者,本发明的基于内容的短链接***的实现方法,包括步骤:
(1)将需要缩短的地址的原始内容,经数据生成模块,生成hash数据;
(2)将hash数据经短链接生成模块,形成原始内容所对应的短链接;
(3)将原始内容的短链接和原始内容的地址链接存储到链接存储模块;
(4)当用户拿着短链接进行解析时,短链接网址会根据链接存储模块中的key-value进行检索,并将原来的网址链接返还回来,进行地址重定向。
所述短链接中,根据原始内容使用的是否为无损压缩源,进行以下的短链接生成处理:
(1)如果原始内容使用的是无损压缩源,则将压缩内容进行解压,生成原始内容数据,再对这些数据进行hash数据处理,再使用多进制数字进行压缩,形成原始内容所对应的短链接;
(2)如果原始内容使用的是有损压缩源,那么如果原始内容一致,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成一致的原始内容所对应的短链接;
如果原始内容不一致的话,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成不同的原始内容所对应的短链接。
上述方法,还可包括步骤:(5)检查模块定期扫描短链接库中所存放的原始链接所指向的内容,在内容发生变化之后,自动失效地址库中短链接到该链接的指向。
本发明通过基于目标地址的实际内容进行hash运算,然后根据hash的结果,生成短链接。如果目标地址的内容是相同的,那么生成的hash结果也应该是相同的,也就可以分配相同的短链接。当有用户需要访问这些短链接的时候,短链接服务器随机或根据负载均衡算法,给出多个地址中的一个,实现了负载均衡的目的。因此,本发明与传统的短链接的差异在于,对于相同的内容,其短链接地址是相同的。
另外,本***还有一个流程,就是地址有效性检查。传统的短链接,是没法对地址的有效性进行检查的,因为他们不记录原地址的内容。而本本发明的***可定期扫描短链接库中所存放的原始链接所指向的内容,如果内容不一致了,则删除这个原地址,以便实时确定短链接的有效性,方便用户使用。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是本发明的原始内容所对应的短链接的形成示意图;
图2是本发明的短链接的解析示意图。
具体实施方式
本发明的基于内容的短链接***,包括:
数据生成模块,用于将网址上的原始内容经hash运算,生成hash数据;其中,该原始内容包括:图片、文件、音频、视频等的内容;关于hash运算,可按现有的hash运算进行,例如,可参考http://zh.wikipedia.org/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个1的话,这个数字就是128,但允许出现在url中的字符又没有那么多,因此,可以采用6位二进制数,也就是64种变化。使用64的字符来代表这64种变化,其中大小写字母再加上十个数字,加在一起,是62个,再加上在url中比较常见的下划线“_”和百分号“%”,正好64个。如果有些web服务器或浏览器有兼容性问题的话,也可以换成“#”或“?”等字符。
而对于目前最常用的多进制舍去算法,形成短链接的处理过程,现以jpg格式存储的图片为例,说明如下:
(1)先将图片的数据读入内存,然后对其进行hash转换成为一个128位二进制的数字;
(2)然后再对这个二进制的数字,进行多位编码,具体如下:
1)将长网址md5生成32位签名串,分为4段,每段8个字节;
2)对这四段循环处理,取8个字节,将它看成16进制串与0×3fffffff(30位1)与操作,即超过30位的忽略处理;
3)将这30位分成5段,每6位的数字作为字母表的索引取得特定字符,依次进行获得5位字符串;
4)总的md5串可以获得4个5位串;取里面的任意一个就可作为这个长url的短url地址。
因此,本实施例中采用的多进制数字算法,相对于现有的最常用的多进制舍去算法,字符的变化更加多。
在短链接中,本发明的***可根据原始内容使用的是否为无损压缩源,进行以下的短链接生成处理(如图1所示):
(1)如果原始内容使用的是无损压缩源,也就是可以还原出唯一的无压缩内容;将压缩内容进行解压,生成原始内容数据,再对这些数据进行hash数据处理,再使用上述的多进制数字进行压缩,形成原始内容所对应的短链接;
其中,对于无损压缩的原始内容,即使格式不同,只要解压后的原始数据一致,那么得到的短链接也是一样的;
(2)如果原始内容使用的是有损压缩源,则只对原始内容进行比较,如果原始内容一致,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成一致的原始内容所对应的短链接;
如果原始内容不一致的话,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成不同的原始内容所对应的短链接。
对于上述的基于内容的短链接***,其实现方法,包括步骤:
(1)将需要缩短的地址的原始内容,经数据生成模块,生成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,然后根据分隔符(比如是‘{}’或‘<>’),将多个地址解析出来,再随机给出其中一个。
当***进行原始地址复查的时候,则需要遍历url2url,将原始地址所指向的内容提取出来,进行hash之后,与存放在url2url中的resource-hash进行比较,如果相同,则说明内容有效;如果不同,则说明原始链接无效了。在验证结束之后,将所有通过验证的地址,重新写入source-url-list。
综上所述,采用本发明的***,当用户进行短链接地址解析的时候,短链接服务器会自动的进行负载均衡。负载均衡,可以采用最简单的随机数算法,当一个短链接被请求的时候,短链接服务器,随机的给出一个原内容的地址,进行跳转。针对同一个内容的不同资源,其被调用的机会是均等的,即实现了负载均衡的目的。另外,通过本发明***的定期短链接地址的有效性检查,了解原始内容的变化,方便用户使用。
Claims (7)
1.一种基于内容的短链接***,其特征在于:包括:
数据生成模块,用于将原始内容经hash运算,生成hash数据;
短链接生成模块,用于将hash数据经多进制数字的编码进行压缩,形成原始内容所对应的短链接;
链接存储模块,用于对原始内容的短链接和原始内容的地址链接以key-value数据库的方式进行存储;
key-value数据库的方式为:
建立两个集合,第一集合resource2url以hash结果为key,以短链接为value,第二集合url2url,则以短链接为key,以原始链接的列表为value;
当用户存入一个短链接的时候,先进行hash运算,然后到第一集合resource2url中去寻找key,如果没找到,则同时将hash运算和原始链接分别***第一集合resource2url和第二集合url2url,如果在第一集合resource2url中找到了hash结果的key,那么就直接将第一集合resource2url中的value也就是短链接拿出来作为key到第二集合url2url中去取出value,即找出原始链接的列表,然后将新的url追加到原始链接的列表后面;
在用户拿着短链接进行解析的时候,只要到第二集合url2url中,根据短链接的key,取出原始链接的列表,然后根据分隔符,将多个地址解析出来,再随机给出其中一个作为得到的地址。
2.如权利要求1所述的***,其特征在于:所述原始内容包括:图片、文件、音频、视频的内容。
3.如权利要求1所述的***,其特征在于:所述多进制数字,包括:一套允许在url地址上出现的字符形成的多进制数字。
4.如权利要求1所述的***,其特征在于:还包括:检查模块,用于定期检查短链接库中所存放的原始链接所指向的内容,在内容发生变化之后,自动失效地址库中的短链接到该原始链接的指向。
5.如权利要求1所述的基于内容的短链接***的实现方法,包括步骤:
(1)将需要缩短的地址的原始内容,经数据生成模块,生成hash数据;
(2)将hash数据经短链接生成模块,形成原始内容所对应的短链接;
(3)将原始内容的短链接和原始内容的地址链接存储到链接存储模块;
(4)当用户拿着短链接进行解析时,短链接网址会根据链接存储模块中的key-value进行检索,并将原来的网址链接返还回来,进行地址重定向;
key-value数据库的方式为:
建立两个集合,第一集合resource2url以hash结果为key,以短链接为value,第二集合url2url,则以短链接为key,以原始链接的列表为value;
当用户存入一个短链接的时候,先进行hash运算,然后到第一集合resource2url中去寻找key,如果没找到,则同时将hash运算和原始链接分别***第一集合resource2url和第二集合url2url,如果在第一集合resource2url中找到了hash结果的key,那么就直接将第一集合resource2url中的value也就是短链接拿出来作为key到第二集合url2url中去取出value,即找出原始链接的列表,然后将新的url追加到原始链接的列表后面;
在用户拿着短链接进行解析的时候,只要到第二集合url2url中,根据短链接的key,取出原始链接的列表,然后根据分隔符,将多个地址解析出来,再随机给出其中一个作为得到的地址。
6.如权利要求5所述的实现方法,其特征在于:所述短链接中,根据原始内容使用的是否为无损压缩源,进行以下的短链接生成处理:
(1)如果原始内容使用的是无损压缩源,则将压缩内容进行解压,生成原始内容数据,再对这些数据进行hash数据处理,再使用多进制数字进行压缩,形成原始内容所对应的短链接;
(2)如果原始内容使用的是有损压缩源,那么如果原始内容一致,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成一致的原始内容所对应的短链接;
如果原始内容不一致,在将原始内容进行hash数据处理,再使用多进制数字进行压缩后,形成不同的原始内容所对应的短链接。
7.如权利要求5所述的实现方法,其特征在于:还包括步骤:(5)检查模块定期扫描短链接库中所存放的原始链接所指向的内容,在内容发生变化之后,自动失效地址库中短链接到该链接的指向。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110142354.6A CN102810089B (zh) | 2011-05-30 | 2011-05-30 | 基于内容的短链接***及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110142354.6A CN102810089B (zh) | 2011-05-30 | 2011-05-30 | 基于内容的短链接***及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102810089A CN102810089A (zh) | 2012-12-05 |
CN102810089B true CN102810089B (zh) | 2017-07-04 |
Family
ID=47233796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110142354.6A Active CN102810089B (zh) | 2011-05-30 | 2011-05-30 | 基于内容的短链接***及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102810089B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104080059A (zh) * | 2013-03-25 | 2014-10-01 | ***通信集团福建有限公司 | 一种收发短信的实现方法、装置及*** |
CN103501470B (zh) * | 2013-10-17 | 2017-01-25 | 珠海迈科智能科技股份有限公司 | 网络数据筛选方法及装置 |
WO2015160444A1 (en) * | 2014-04-16 | 2015-10-22 | Rewardstyle, Inc. | Targeted data based on social media interaction |
CN106156235B (zh) * | 2015-04-27 | 2021-01-12 | Tcl科技集团股份有限公司 | 一种基于Android平台的图片下载方法及*** |
CN104966218A (zh) * | 2015-07-09 | 2015-10-07 | 浙江工商大学 | 基于双重url的二维码广告投放及渠道评价方法 |
CN105630927B (zh) * | 2015-12-22 | 2019-06-18 | 北京奇虎科技有限公司 | 链接生成方法和装置 |
CN105808632B (zh) * | 2015-12-22 | 2019-03-01 | 北京奇虎科技有限公司 | 链接生成方法和装置 |
CN106933871B (zh) | 2015-12-30 | 2021-08-17 | 创新先进技术有限公司 | 短链接处理方法、装置及短链接服务器 |
CN106933854B (zh) | 2015-12-30 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 短链接处理方法、装置及服务器 |
CN105718578A (zh) * | 2016-01-22 | 2016-06-29 | 北京三快在线科技有限公司 | 短链接生成方法及装置 |
CN107220260B (zh) * | 2016-03-22 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 一种页面显示的方法及装置 |
CN105978944A (zh) * | 2016-04-26 | 2016-09-28 | 乐视控股(北京)有限公司 | 对象存储方法和装置 |
CN106210161A (zh) * | 2016-06-24 | 2016-12-07 | ***股份有限公司 | 一种短链接生成方法及*** |
CN106202187A (zh) * | 2016-06-28 | 2016-12-07 | 北京京东尚科信息技术有限公司 | 一种在浏览器中处理短链接的方法和装置 |
CN107733972B (zh) | 2017-08-28 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 一种短链接解析方法、装置及设备 |
CN107749861A (zh) * | 2017-11-16 | 2018-03-02 | 平安科技(深圳)有限公司 | 信息推送方法、装置、终端设备及存储介质 |
CN110519656B (zh) * | 2018-05-22 | 2021-11-26 | 中国电信股份有限公司 | 自适应流媒体的播放方法、***以及服务器 |
WO2020034186A1 (zh) * | 2018-08-17 | 2020-02-20 | 福建联迪商用设备有限公司 | 一种生成短网址的方法和终端 |
CN109299766A (zh) * | 2018-11-08 | 2019-02-01 | 新疆七色花信息科技有限公司 | 一种二维码生成方法、二维码识别方法及标号牌 |
CN110599233B (zh) * | 2019-07-30 | 2022-09-02 | 苏宁云计算有限公司 | 一种基于点击验证的广告反作弊方法及装置 |
CN111191159B (zh) * | 2019-12-31 | 2020-11-24 | 上海应用技术大学 | 基于信誉度评价的短链接分享方法 |
CN111212068B (zh) * | 2019-12-31 | 2022-02-08 | 北京升鑫网络科技有限公司 | 一种输入法对文字加解密的方法 |
CN113254813B (zh) * | 2020-02-13 | 2023-07-18 | 多点(深圳)数字科技有限公司 | 一种短链接生成方法、装置、服务器和计算机可读介质 |
CN114313678A (zh) * | 2020-09-29 | 2022-04-12 | 北京芯体系科技有限公司 | 一种对垃圾进行标记的方法 |
CN116701792B (zh) * | 2023-08-03 | 2023-11-24 | 阿里健康科技(中国)有限公司 | 目标界面的访问方法、装置、设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100452043C (zh) * | 2006-09-06 | 2009-01-14 | 南京中兴软创科技有限责任公司 | 一种多索引散列表的存储和检索方法 |
CN101132420B (zh) * | 2007-10-16 | 2012-03-14 | 杭州华三通信技术有限公司 | 一种基于ssl vpn的链接改写方法和设备 |
KR20100046524A (ko) * | 2008-10-27 | 2010-05-07 | (주)소만사 | 유해 사이트 차단 장치 및 방법 |
US20100268739A1 (en) * | 2009-04-21 | 2010-10-21 | George David Zalepa | Systems and methods for automatically detecting and removing redirected uniform resource locators |
CN101674374A (zh) * | 2009-09-02 | 2010-03-17 | 优视动景(北京)技术服务有限公司 | 用于移动通讯终端的网页内容提取转发***及其应用方法 |
CN101841540A (zh) * | 2010-04-22 | 2010-09-22 | 彭永 | 一种基于Hash函数算法发布多媒体内容的方法 |
-
2011
- 2011-05-30 CN CN201110142354.6A patent/CN102810089B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102810089A (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102810089B (zh) | 基于内容的短链接***及实现方法 | |
US11182366B2 (en) | Comparing data stores using hash sums on disparate parallel systems | |
US11973873B2 (en) | DLP exact data matching | |
US10242219B2 (en) | Fragmenting data for the purposes of persistent storage across multiple immutable data structures | |
US10075298B2 (en) | Generation of hash values within a blockchain | |
EP3251031B1 (en) | Techniques for compact data storage of network traffic and efficient search thereof | |
CN107749861A (zh) | 信息推送方法、装置、终端设备及存储介质 | |
CN103685307A (zh) | 基于特征库检测钓鱼欺诈网页的方法及***、客户端、服务器 | |
CN106021256A (zh) | 使用基于云的对象存储的消除重复分布式文件*** | |
CN106210161A (zh) | 一种短链接生成方法及*** | |
AU2018403177B2 (en) | Data isolation in distributed hash chains | |
CN107612692A (zh) | 一种信息处理方法、装置及存储介质 | |
CN112489742B (zh) | 一种处方流转处理方法和装置 | |
KR20200093262A (ko) | 블록체인 기술을 활용한 지식 공유 서비스의 원본 컨텐츠 증명 방법 및 그 시스템 | |
CN104239353B (zh) | 一种web分类控制和日志审计的方法 | |
CN109992469B (zh) | 一种合并日志的方法及装置 | |
CN112950211A (zh) | 一种交易验重方法、装置、设备以及介质 | |
CN114491184B (zh) | 一种数据处理方法及装置、存储介质及电子设备 | |
CN103929763A (zh) | 一种用于比较和重构地理冗余的数据库的方法 | |
Tabona et al. | Forensic cloud environment: a solution for big data forensics | |
CN115021998A (zh) | 一种静态资源双重防盗链的方法及*** | |
CN114003737A (zh) | 基于人工智能的双录审查辅助方法、装置、设备及介质 | |
Kaandorp | Easy and efficient querying of smart contract data while maintaining data integrity | |
CN115129899B (zh) | 文档标签信息生成方法、装置、设备、介质和程序产品 | |
CN113810414B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190225 Address after: 201203 7, 1 Lane 666 lane, Zhang Heng Road, Pudong New Area, Shanghai. Patentee after: SHANGHAI ZHANGMEN TECHNOLOGY CO., LTD. Address before: 201203 No. 356 GuoShoujing Road, Pudong New Area, Shanghai Patentee before: Shengle Information Technology (Shanghai) Co., Ltd. |
|
TR01 | Transfer of patent right |