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. 现有模式就挺好。用户没有觉得不方便呀。

Related posts:

  1. 宝贝,再短些,再细些!——3种精巧网址服务比较

2007年12月30日01:33
  • 2007年12月30日14:24 | #1

    关于饭否的超链接问题我也曾经注意过,就是每次点的时候在地址栏里总是先出现一个以fanfou.com开头的地址,然后才转到目的地址。当时也只是疑惑了一下,并没有深究。经你这篇文章一分析,才知道其中的奥妙!

    真佩服你对问题钻研的劲头!赞一个!

  • 2007年12月30日19:08 | #2

    的确是应该赞一个,发现问题解决问题而不是把问题堆着,好,学习ing……

  • rex
    2007年12月30日23:02 | #3

    感谢朋友们前来赏光留言:)我的虚荣心得到了极大的满足,呵呵

  • 2008年1月7日16:50 | #4

    模板和阅微堂的是不是有点区别?
    在那里点日期里的文章时顶上的日期文章那块不会变,下面的文章会更改
    这里则是重新刷了个新页面

  • rex
    2008年1月7日20:11 | #5

    是阅微堂提供的。不过,阅微堂自己的版本是更新过的,我只是上一个版本的follower,功力还不足自己修改定制,呵呵。

  • 2008年1月28日16:31 | #6

    正在研究中~谢谢分享心得

  • 2008年1月28日16:49 | #7

    不客气,请常来!

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>