今天突然对新浪微博的短网址很感兴趣,长长的一段url,发布以后被替换为了类似 http://t.cn/xxx 的毛玩意儿!
当然了,人家新浪微博一个小小的发布框,本来就有发布字数的限制,如果空间都被一个url给占了,着实吭爹啊!所以,人家把长网址替换为短网址,是明智之举。
类似的还有人人(http://rrurl.cn/xxx),腾讯微薄等等。。。
我感兴趣的不是它做了一个replace操作,而是短网址点击后,还原到长网址的实现!其实仔细想了下,老简单了,最基本的实现原理:
1、利用长网址,生成一个唯一串:xxxxxx
2、新的短网址为:“我的域名” + "唯一串",如:http://baidufe.com/u/xxxxxx
3、当访问 http://baidufe.com/u/xxxxxx 的时候,实际进入 /u 这个Action
4、在 /u 的Action内部获取xxxxxx,然后反解出长网址(可以利用数据库)
5、302跳转到长网址
就这么地,我也搞了一个,勉强能用:http://www.baidufe.com/createshorturl
如上图,长网址为:http://hi.baidu.com/zxlien/item/8fddf55bb1280629e6c4a5a7