不自重者,取辱。不自长者,取祸。不自满者,受益。不自足者,博闻。
仿新浪微博的短网址【short url】 进入全屏
line

   今天突然对新浪微博的短网址很感兴趣,长长的一段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

   转换后,短网址为:http://baidufe.com/u/WXDCiC


   再来试一个长一点的url:

   

   长网址:http://www.baidu.com/s?wd=taylor+swift&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&oq=taylo&rsp=0&f=3&inputT=2311

    短网址:http://baidufe.com/u/mKf8Tb


   我这里只是模拟实现短网址,还没有真正意义实现最短!因为我的短网址里,还包含了 /u 这一层,如果要想实现最短,需要去掉这一层,另外还可以像新浪那样搞一个t.cn的域名,或者人人那样,搞一个rrurl.cn的域名,专门用来做短网址服务。

趣店(原趣分期)技术学院
重点关注技术架构、服务化、优秀工具、自动化平台、开发全流程一体化解决方案、新人培养、工程师进阶之道等方面
这里环境优雅、氛围年轻、主要是福利还多,还等什么?我们敞开技术的大门,欢迎各种工程师加入!

评论区域

line
  • 234 2016-07-18 14:54:59 回复
    234
  • Alien 2012-07-15 09:31:48 回复
    回复 yb : 哈哈,那你很强大了。我这里只是模拟实现一下,做前端的,能知道点儿后端的实现原理就差不多了。
    yb said:
    我以前也做过个短网址系统,还支持自定义短网址。 短域名可以到www.dot.tk申请一个。
  • yb 2012-07-14 22:02:45 回复
    我以前也做过个短网址系统,还支持自定义短网址。 短域名可以到www.dot.tk申请一个。