Loading...

fanfou vs twitter, base64 vs tinyurl?

2007-12-30 01:33:31 发表于编程 本文链接: fanfou vs twitter, base64 vs tinyurl?

在fanfou上与网友分享链接时,链接表面显示的是你所输入的网址,可是,这只是障眼法;实际上,当你点击链接时,fanfou是按如下格式把你带到目的地的:

http://fanfou.com/linkto/aHR0cDovL3poYXNtLmNvbQo=

仿佛是你给了A地的女朋友一张地址纸片,约她按纸片上的地址到B地找你。可是,她上了出租车,司机却从A地出发,绕经C市,才又到达B地。明明A到B有直线可以经过,为什么还要取道C地呢?女朋友并没有因此而来迟多少时间,可好奇而细心的你却想弄清究竟。

我怀疑linkto之后是加密了的网络地址。至于加密算法,既然大小写并存,还有等号在里面,那么80%是base64了。验证之后,果然如此。我把另外一个网址也做成fanfou的格式,如下:

http://fanfou.com/linkto/aHR0cDovL2NvZGUuemhhc20uZ29vZ2xlcGFnZXMuY29tCg==

至于什么是base64算法,可以参考这里,此文言之甚详:老罗的矛与盾的较量(4)——奇妙的Base64编码

至于为什么fanfou采用base64,推测如下:

  • 为了使网址格式统一,
  • 更美观,避免出现乱码
  • 被访页面从统计工具上显示页面来源是fanfou,可以增强fanfou的知名度,满足fanfou的虚荣心 :)
  • 这种算法速度较快,可以迅速生成,立刻指向。
  • 这种算法可以起到简单的加密作用,同时解密也简单(可逆)。

但是,这种方法造成的后果是,fanfou所生成的地址太长。

例如,请对比下面的原始网址和fanfou链接:

http://3.1415926535897932384626433832795028841971693993751058209
74944592.com
/
http://fanfou.com/linkto/aHR0cDovLzMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzg
zMjc5NTAyODg0MTk3MTY5Mzk5Mzc1MTA1ODIwOTc0OTQ0NTkyLmNvbS8

好了,fanfou的事情告一段落,那位司机师傅也清白了:他没有私自带着别人的女朋友去不可告人的地方,而是统一按公司规定,先向公司告目的地,然后从公司取得统一的行程安排,所去的地方正好是原来的目的地。整个过程是安全而透明的,事先有计划,事中有记录,事后可追溯。

我们再来看一下fanfou的国外兄弟twitter是什么解决出租车路线问题的。

我把本文原创作者rex.zhasm的blog地址放入twitter,所产生的链接是:

http://zhasm.com

把刚才那个pi的超级变态网址放进去,仍然是原状:

http://3.141592653589793238462643383279502884197169399375105820974
944592.com

于是,我又进行更血腥暴力的实验:

http://www.iol.co.za/index.php?from=rss_Twitter&
set_id=1&click_id=79&art_id=nw20071229175550951C275909

地址放入twitter 中,产生的新的链接是:

http://tinyurl.com/2d39×2

之后把一个新浪博客的文章扔进去,链接还是tinyurl的。

原来是这样呀。我们对twitter作了不完全调查统计,至少有一部分网址转向符合以下规则:

  1. 如果网址是一级域名,即使长一些,也要完全显示。
  2. 如果网址是二级域名,或者是一级域名引申出来的链接,那么把链接改成tinyurl格式。

如果还用出租司机的例子做类比,就变成这样了:

司机先看看你去的地方是不是不拐弯能到的。如果您从长安街东头,一直坐到长安街西头,那么司机很爽快地把您送到目的地;但是,如果您要在中途拐哪怕一个小弯,对不起,咱做不了主,您得登记,按行业规定的路线送过去。

至于路线的安排,则是由tinyurl来制定。它所制定的路线是最短的,无论是http://zhasm.com这样短的路线,还是像刚才的pi一样的路线,都能压缩成http://tinyurl.com/yveppt这样短。

tinyurl这样的做法,其算法应该是不可逆的,根据所输入网址hash出一个N位的关键码。(不分大小写的英文字母,数字)。根据简单的数学原理,N=6时所记录的容量是:

36^6=2,176,782,336,即2个billion多。

根据一篇道听途说的文章: 第19次互联网报告之中国网页总数44.7亿个(2007年01月23日10:13)。 但是你想想看,一天看一百篇文章,能有几篇值得分享。大多数搜索出来的文章都是过眼烟云的垃圾。退一万步讲,tinyurl不够用了,我们再使用更短的一级域名来支持,(例如g.cn之类),稍长一些的关键码,因为36的10次方是3,656,158,440,062,976,一个让人数半天不知怎么念的数字。

总之,以上数据表明,如果使用tinyurl,是前途光明的。具体到twitter和fanfou中,自觉使用tinyurl也是立见其利:如果说一句话时非得包括一个长长的地址,你在tinyurl的亲切关怀下就能表达更多的内容,在140个汉字或140个英文字母中所提供的信息量越大。何乐而不为?

为什么fanfou不用tinyurl呢?猜测如下:

  1. 技术要自己研发,用着才踏实。
  2. 国外网站有被hexielization的危险。
  3. 如果要支付高额成本,价格问题谈不拢。
  4. 该技术或需大量硬盘,或需大量带宽,同时其利甚微,不值得做。
  5. 跟宗教一样,源自外国,到了中国,即自成具有中国特色的体系,不受外国教皇控制。
  6. 与国情相似:国外酌情搞外包,国内事无事无巨细,一概小而全。
  7. 现有模式就挺好。用户没有觉得不方便呀。
发表于 2007-12-30 01:33:31 目录:编程 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
feed url
下一篇: 新年计划 »