Gavin

短网址实现

    周末在学长的指点下,突然想对短网址有个了解,于是就四处寻觅,碰巧的是,当我看到短网址的实现方式时,突然想到了.TK这个免费的域名,于是乎,敲下决定,做!

    跑到tk的官网,申请下了bxcd.tk这一域名,设置好DNS和域名指向,测试bxcd.tk可以正常访问,OK,开工!

    短网址需要实现的有三点,一是将一段长长的URL压缩到很短的几个字符内,二是保证每一个短网址都是唯一的,三则是当你访问类似bxcd.tk/1时,可以接收到1这串短网址,并将其成功转换为原始路径,然后跳转……

    关于第三点,我的实现方式是通过web server的rewrite,将短网址取出并构造成GET的方式传递给处理程序,然后通过header或者js实现跳转,原本使用header跳转,但无法正常使用百度统计,因此改为了使用js跳转。

    第一点,从原网址压缩至短网址,我使用的是类似进制转换的方式,首先判断原网址是否存在于数据库中,不存在则插入,存在则返回短网址,对于插入的新网址,获取其流水号,对流水号进行进制转换,使用的是从0-9a-zA-Z这样62进制的方式62^6可以满足足够多的需求了……

    不过我始终感觉这么做有点取巧的嫌疑,貌似可以构造一个压缩算法来实现,现在在考虑当中……

    至于第二点,由于使用的是流水号转换进制来实现,也就不存在重复的问题了……但使用压缩算法时应该会遇到这种问题,还有同时考虑压缩和解压缩的效率跟比例……有的玩咯。

    现在还在考虑是否开放短网址的转换,有需要使用的朋友联系我,我把API发你……

码字很辛苦,转载请注明来自淡兰色的海洋《短网址实现》

评论

  1. abercrombie and fitch sale #1

    说的很详细,学习了,谢谢!

    回复
    2010-12-9
  2. Mbt Shoes Sale #2

    过来瞧瞧...

    回复
    2011-02-24