我一直想知道小网址是如何工作的。
我想为我的网站开发类似的东西,但是对于大多数人来说,我使用GUID作为ID。创建对象时,我是否应该生成一个10个字符的随机字符串作为公共ID,还是有更智能的方法?
旧网址示例:www.mysite.com/default.aspx?userId = {id}
新网址示例:www.mysite.com/pwzd4r9niy
答案 0 :(得分:5)
您可以使用任何类型的随机字符串生成器或GUID。我认为没有更聪明的方法。 (Palantir提供了一个不错的选择,散列传入的URL。)
其余的相对简单:保留一个包含ID和目标URL的数据库表;当请求进入时,请查找ID并执行header
重定向到目标网址。
this blog post中的更多讨论。
现在还有重定向服务,它们使用字典列表中的单词来构建URL。
可悲的是,EvilURL已经走了!它曾用于创建像这样的“简短”网址http://evilURL.com/donkey_porn-shotguns/cracking-virus-exploit
这是唯一值得的网址重定向服务 。 :)
而且,作为一个小问题,http://to
是人类已知的最短的重定向服务(我认为最短的网址)。
答案 1 :(得分:0)
将整个字符串散列到合理的长度。