百度 谷歌 Twitter,这么多短链接服务(Short Url)到底哪家强?

时间:2015-08-21 15:49:57   收藏:0   阅读:7347

一、短链接是什么

短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。
它的原理也非常简单,就是采用 Domain Redirect(域名重定向) ,将一个域名自动跳转到另一个域名。

根据wikipedia描述,短链接的方案最早在2000年诞生。在2009年11月,著名短链接服务提供商Bitly的访问量是21亿,可见短链接的使用需求是非常大的。
维基地址

技术分享


而在国内,短链接的普及与微博息息相关。

最早是由新浪仿照Twitter的140短篇博文功能,上线了新浪微博,之后微博服务开始风靡全中国。一个有意思的小插曲是,据说新浪与腾讯争夺weibo拼音域名,最终新浪获得了weibo.com的使用权。

技术分享

也是由于微博的风靡,产生了短链接的大量刚需,因为一篇微博只能写140字,如果发送一个超长链接非常占用字符数量,并且有可能140字符都容纳不下一条链接。

参照如下一条链接,数一下有多少字符:
http://baike.baidu.com/link?url=ZbFVNe9FDaoht-ZHu9snNTFPk2QEEWEz8-oFSkd4Fdo0pzPDwolG1tubpZ-bglJEDnqf6O4hIJ5dEIAW3IAQke3cyF-H3YmZ0EX65Z2xdjw1suMk56IxG-uNzAq9lI57M636J7FgNB5So2_1OPTk7oVe_5E_NhkiWlTqMpPpmxZj7m07Mk4UcL4HboQSF6Or


短链接服务产生后,应用非常广泛。例如:

 - 一些网店、博客等,上传图片url时限制了字符数,使用短链接可以缩短url,保持url完整性。
 - 网络转发url,越短的url越容易操作和传播。
 - 为了区分用户来源,可以使用短链接做访问跟踪。
 - 使用短链接,还可以隐藏原始url。

凡事皆有利弊,短链接除了产生诸多好处,也带来了一些麻烦。例如在邮件中,使用短链接形式的广告地址,可以避过垃圾邮件过滤。甚至,短链接还会带来安全隐患。

短链接的滥用,也促使一些服务商、个人,把短链接的域名加入了黑名单。

当然,本文不深入讨论短链接的利弊。接下来,我们八一八国内外常见的短链接。


二、短链接到底哪家强?

如果你发过微博,你知道新浪家有短链接。如果你twi过tter,你知道Twitter家有短链接。BAT、Google、Twitter,这可都是大厂啊。到底他们的短链接是哪家强呢?


新浪微博

首先从大家熟悉的新浪微博说起吧。新浪微博的短链接域名为t.cn

我们先看看,什么样的url会被识别,并转化为短链接呢?

先来一个最简单的 http://www.baidu.com

技术分享

微博发出来,如下图。这里默认隐藏了链接地址,只显示为网页链接

技术分享

我们右键拷贝出这个地址,域名显示为t.cn,整个链接为 http://t.cn/h5mwx

技术分享

访问该链接,网页即被重定向到baidu

技术分享

Bingo! 这个url成功被识别,并自动转化为了一条t.cn的短链接

我猜测url的识别是通过协议头,例如http:// https://来识别的。好的,根据这个思路,我们再实验一条,这一次去掉http://

技术分享

微博发出来

技术分享

果然,这条url并未被识别,因此按照普通字符的形式发了出来。

那么,其他的协议头是否能被识别呢?我们试一下https://

技术分享

https被识别为链接

技术分享

再试一下ftp://

技术分享

我们注意到,ftp://ftp.baidu.com/zhidao是一个有效链接,但并未被识别。

技术分享

总结一下微博的短链接:

1.微博的短链接域名是t.cn
2.微博的短链接,仅识别http://和https://开头的url

另外,新浪已经开放了短链接的api。网上比较好的一个新浪短链接工具是aTool在线
aTool在线里,包含了短链接生成和反查询,以及访问数统计

技术分享

技术分享


腾讯微博

说完新浪微博,不得不对比一下腾讯微博。腾讯微博的短链接域名为url.cn,那么它与新浪有哪些异同呢?

首先仍然是最常见的链接, http://www.hao123.com

技术分享

url被成功转换为短链接

技术分享

再换一个ftp://ftp.baidu.com/zhidao

技术分享

ftp://开头的url识别成功。腾讯的技术还是比较严谨的哈

技术分享

同样,我们把http://协议头去掉

技术分享

这个url未识别。看来普遍采用的方案,就是识别协议头了

技术分享

那么我们再实验一种情况,如果url是目前不存在的呢?

技术分享

url被转换为url.cn短链接。可见,短链接方案通常不识别链接有效性。

技术分享

兴趣来了,咱们再实验一种情况。假如两个人分别分享同一条链接,转换的url.cn是否相同呢?

仍以hao123为例

技术分享

两个账号相同发送相同url,转换后的短链接相同。可见,腾讯微博并未将短链接与账号关联,这也降低了技术方案的难度和资源消耗。

技术分享
技术分享

依然总结一下:

1.腾讯微博的短链接域名为url.cn
2.腾讯微博的短链接,能够识别常见的http、https、ftp等协议头
3.腾讯微博的短链接与账号无关
4.腾讯微博的短链接生成时,不检查url有效性

Twitter

前面已经对比了新浪、腾讯两大微博,因此不得不提到Twitter。Twitter的短链接域名为t.co
由于国内Twitter被墙,这里不再详细介绍它的短链接。仅说两点有意思的地方

1.是Twitter能够正常识别www.baidu.com形式的链接

技术分享

推文中显示出了正常链接。实际上它已经被转换为短链接

技术分享

右键将url拷贝出来,看看真相

技术分享

2.更有意思的是,www.baidu.com与http://www.baidu.com被视为相同内容,并且不允许重复发送

技术分享

技术分享

twitter能够识别www.baidu.com形式的常见链接,这个令我比较佩服,很用心

google

吧啦吧啦说了一大堆,各位看官烦了没?如果还有兴趣,继续看,google的短链接做到了那些事情。

google短链接的域名是goo.gl。注意,谷歌在国内的访问并不稳定。

google短链接与微博等不同的一点是,它是一个的独立工具,而不是依附于社交产品的附属产物。
这一点非常重要:微博等产品中的短链接,是基于传播信息的需要,把url转换缩短,仅此而已。而google基于工具的思路,因此决定了它更优秀的一些特点

1.首先,google短链接有独立的访问页面,独立的域名。

google短链接入口

2.google短链接页面干净简洁,并不掺杂社交、广告等内容

技术分享

3.未登录google账号,也可以使用

4.登录google账号时,可以保存生成短链接的历史记录,并进行访问跟踪

技术分享

5.不同账号之间,同一个url转换生成的短链接不同,这样可以区分访问跟踪。未登录google时,更换浏览器,同一个url也会生成不同的短链接,猜测是根据浏览器、电脑属性等识别了唯一的游客身份。

技术分享

技术分享

介绍了goo.gl诸多特性后,我们依然来做一点技术分析

a. goo.gl对url的形式保持开放态度,来者不拒。 a.b 以及 我可以 这样的字符串依然可以生成短链接,也就是说完全不对url进行任何校验和限制

技术分享

技术分享

b. 别忘了我们刚刚提到,不同账号之间,甚至不同游客之间,同一个url会转换成不同的短链接。这对于数据处理来说是有一定挑战的,当然我相信对于谷歌来说这真是缺乏挑战

- 短链接的存储,从简单的 url-短链接 对应关系,变成了 账号-url-短链接 对应关系
- 数据库表如何设计,才能兼顾 存储、查询、账户信息合并、访问统计
- 另外一个与短链接无关的,就是:在多种电脑、多种浏览器、甚至现在多种移动终端的形势下,谷歌如何track游客用户

整体来说,goo.gl还是做得很用心,只是在国内的话需要慎用


百度

既然说到谷歌,就对比一下百度的短链接服务吧,地址 http://dwz.cn/

1.注意谨防伪冒,百度短链接页面如下图

技术分享

而百度搜索推荐的居然是一个冒牌的服务 http://baidu.nu/ !!!
当然这个服务做得也还可以,可以自主选择多种域名

技术分享

技术分享

2.百度短链接无账号区分,一个短链接生成后即形成 url-短链接 对应关系

技术分享

3.百度会验证url有效性

技术分享

4.百度短链接可以自定义后缀

技术分享

技术分享

5.已经存在的url,不能再自定义后缀。可见百度 url-短链接 是一对一的存储关系

技术分享

总结一下百度短链接服务的特点

1.百度短链接的域名是dwz.cn
2.百度短链接会识别url有效性
3.百度短链接是 url-短链接 一对一的映射关系
4.百度短链接可以自定义后缀
5.百度短链接开放了api,可以基于百度开发自己的短链接服务

整体来说,除了无法统计这一点略显不足,整体质量与goo.gl也是不相伯仲的


其他

以上介绍了几款短链接相关的产品。整体来说,百度、google的短链接服务还是比较值得信赖的

除了大厂的短链接服务外,还有一些第三方的做得不错,例如:

http://www.atool.org/shorturl.php aTool工具
http://baidu.nu/ 上面提到过的,百度冒牌服务
http://t.im/ t.im短网址
https://bitly.com/shorten/ 国外老品牌,bitly


短链接会被搜索引擎抓取吗

还有一个关于短链接有意思的话题是,短链接是否会被搜索引擎抓取呢?

答案是NO。至于搜索引擎如何做到识别并筛选短链接,有兴趣的可以查阅一下资料

这里有一篇网址在讨论这个问题
http://www.quora.com/Does-Google-crawl-http-goo-gl-shortened-URLs

版权声明:本文为博主原创文章,未经博主允许不得转载。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!