好玩互联网小技巧 — 短域名的两种实现方式
?
最近看到一个网站tinyurl感觉蛮好玩的,就是把任意一个再长的域名都压缩成短域名方式,本文将基于tinyURL的API和完全自己开发两种方式介绍实现方式:
?
?
tinyURL API实现思路:但奇怪的是官方没提供API,Google了一下,找到API调用方式,实现代码如下(以下代码另存为UTF-8格式的HTML文件可执行运行查看效果):?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> function getTinyURL(){$("#ss").load("http://tinyurl.com/api-create.php?url="+$("#url").val()); } </script> </HEAD> <BODY> 输入一个可访问的任意域名: <input type="text" id="url" style="width:350px;" value="http://" /> <button onclick="getTinyURL()">获取短域名</button> <div id="ss"></div> </BODY></HTML>?
可以直接运行,比如本博客的这篇文章对应的短域名:http://tinyurl.com/3x4r5wy
?
?
上面一种实现方式有固有的缺陷,就是前缀域名都是tinyurl,那么可以实现自己的么,答案当然是肯定的,这里主要涉及到两个最基本的技术点:编码和URL rewriter,自己如何实现呢,首先定义URL writer规则<rule> <from>/url/(.*)</from> <to>/url/index.jsp?url=$1</to> </rule>?
然后编码可以基于base36或base64实现,随便你了,然后就是根据短域名在数据库里查询到长域名,利用response的redirect进行转向即可,是不是很简单呢!
?
最后完全利用自己思路实现的效果:http://u.faqee.com/addURL.jsp
?
这种技术被广泛应用与sina微博,twirtter,qq微博等多种大型应用上哦!
?
是不是蛮好玩的:)
?
还是没看出这个到底是何用。是为了解决什么问题