`
yuanlanjun
  • 浏览: 1187248 次
文章分类
社区版块
存档分类
最新评论

URL短地址压缩算法 微博短地址原理解析

 
阅读更多

引自 http://www.nowamagic.net/webdesign/webdesign_ShortUrlInTwitter.php

短网址应用已经在全国各大微博上开始流行了起来。例如QQ微博的url.cn,新郎的sinaurl.cn等。

我们在QQ微博上发布网址的时候,微博会自动判别网址,并将其转换,例如:http://url.cn/2hytQx

为什么要这样做的,原因我想有这样几点:

  1. 微博限制字数为140字一条,那么如果我们需要发一些连接上去,但是这个连接非常的长,以至于将近要占用我们内容的一半篇幅,这肯定是不能被允许的,所以短网址应运而生了。
  2. 短网址可以在我们项目里可以很好的对开放级URL进行管理。有一部分网址可以会涵盖,暴力,广告等信息,这样我们可以通过用户的举报,完全管理这个连接将不出现在我们的应用中,应为同样的URL通过加密算法之后,得到的地址是一样的。
  3. 我们可以对一系列的网址进行流量,点击等统计,挖掘出大多数用户的关注点,这样有利于我们对项目的后续工作更好的作出决策。

其实以上三点纯属个人观点,因为在我接下来的部分项目中会应用到,所以就了解了一下,下面先来看看短网址映射算法的理论(网上找到的资料):

  1. 将长网址md5生成32位签名串,分为4段,每段8个字节;
  2. 对这四段循环处理,取8个字节,将他看成16进制串与0x3fffffff(30位1)与操作,即超过30位的忽略处理;
  3. 这30位分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串;
  4. 总的md5串可以获得4个6位串;取里面的任意一个就可作为这个长url的短url地址;

很简单的理论,我们并不一定说得到的URL是唯一的,但是我们能够取出4组URL,这样几乎不会出现太大的重复。

下面来看看程序部分:

现在可以直接使用该方法,可以等到下面四组值:

在存放这个URL的数据方面,我个人推荐TTServer,有的朋友可以没有听说过,下面是这个数据库的介绍:

Tokyo Cabinet 是日本人 Mikio Hirabayashi(平林幹雄)のページ 开发的一款DBM数据库(注:大名鼎鼎的DBM数据库qdbm就是他开发的),该数据库读写非常快。insert:0.4sec/1000000 recordes(2500000qps),写入100万数据只需要0.4秒。search:0.33sec/1000000 recordes (3000000 qps),读取100万数据只需要0.33秒。

可以看到对于字典类型的数据Key/Value的查询,这个数据库可以说是我目前见过效率非常高的,况且他如此的小巧,用来对short url/long url的配对再好不过。

该系统使用6个短码字符来表示任何长度的网址。 有效的字符代码是ASCII 'A'到'Z'和'0'的'5',其中每个字符包含2 ^ 5(32)状态。 6短码字符可用于绘制32 ^ 6(1073741824)的网址

首先,你需要一个数据库表来存储和检索你映射的网址。



其次,你需要定义一个算法将长的URL映射到短的URL。 算法上面已经介绍过了。

第三,你需要创建一个网页,从数据库的短网址的映射找到原始的URL,并重定向之。

分享到:
评论

相关推荐

    C# URL短地址压缩算法及短网址原理解析

    主要介绍了C# URL短地址压缩算法及短网址原理解析,本文重点给出了算法代码,需要的朋友可以参考下

    .NET短URL压缩算法

    .NET短URL压缩算法,解压包包含整个项目,欢迎下载研究。

    类似微博短URL的实现方法

    资源中是有关类似微博短URL的实现方法,平台是Android,验证是正常可行的。

    Go-shorturl-短链接生成算法

    shorturl - 短链接生成算法

    常见URL压缩算法总结.doc

    常见URL压缩算法总结.doc

    Go-shorturl短链接算法

    short-url,一个很简单的小程序,用来生成url的短链接(go写的)

    短地址服务自建Linux/Win

    快速自建短地址服务,为每个中小企业快速搭建自己的短地址服务。该服务采用微服务架构、短地址压缩算法、nosql标准存储,为需要短地址服务的企业提供终身免费的软件服务。

    最新短视频解析算法源码.zip

    最新短视频解析算法源码 上传服务器或者虚拟空间解压即可 http://你的域名/?url=短视频链接

    新浪微博的微博表情

    新浪微博的微博表情

    短网址压缩系统 v0.1.zip

    短网址服务可以帮助你把一个长网址缩短,方便你在社交网络和微博上分享链接。 支持长网址压缩 短网址还原 系统构架 php txtcached (文本缓存库) 支持千万级 数据 短网址生成形式根据十六进制递进增加     ...

    TP5url短链接生成与跳转

    TP5短链接生成与跳转,短链接生成 地址:http://t.cn/setshorturl.html?sign=xxxxxxxxxxxxxxxxx post参数: urls 原链接地址 必填 title 描述信息 非必填 返回值: { "status": 0, "msg": "短链接生成成功", "data":...

    故宫博物院微博数据

    共2556条数据,爬取时间的为2018年3月18日,数据包括爬取时间,爬取链接,微博url,用户id,用户昵称,用户头像,关注数,粉丝数,发布时间,微博内容, 微博内容txt,发自,转发数,评论数,点赞数,是否长微博,...

    腾讯微博,新浪微博,网易微博

    将自己的网页URL地址分享到腾讯,网易,新浪微博

    url链接还原,将url 短链接(加密、压缩后的链接)还原出原始链接

    http 链接还原,无论任何链接、短链接、压缩后端链接、包装过的链接都可以将其还原出原始链接。 可以用于线报内容分析、去重、解析等业务。 需要源码的可以联系我,包服务搭建。 C|a|ll,Q||Q:2026369403

    C#实现类似新浪微博长URL转短地址的方法

    本文实例讲述了C#实现类似新浪微博长URL转短地址的方法。分享给大家供大家参考。具体如下: 一、前台判断用户输入URL的JS代码如下。 function CheckInput() { var $txtLength = $("#inp_text").val().length; if ...

    Python基于AdaBoost算法的对微博文本数据的情感分析研究,优秀毕设,源代码和论文!

    从微博短文本的的特点,分析了采用Hash方法的URL并将其过滤,并将跟情感分析无关的用户名等进行过滤。进一步的,论文对微博中表达的情感基本单元也有深入的研究,通过对文本中的广义表情符号、重复单词等现象。 (2...

    discuz微博登陆

    公司dz论坛需要对接微博登陆.特花了两三天时间研究写出 支持 pc 和 app 登陆 pc app登陆需要去http://open.weibo.com/ 申请秘钥. pc登陆地址 : url + /AuthLogin/index.php app登陆地址: url + /AuthLogin/index....

    URL参数里的地址转义

    把URL参数里的地址转义,把URL参数里的地址转义,把URL参数里的地址转义,把URL参数里的地址转义,把URL参数里的地址转义,把URL参数里的地址转义,把URL参数里的地址转义,把URL参数里的地址转义,

Global site tag (gtag.js) - Google Analytics