我一直想知道微小的网址是如何工作的。
我想为我的网站开发类似的东西,但和大多数人一样,我使用 GUID 作为 id。创建对象后,我应该生成一个 10 个字符的随机字符串用作公共 ID,还是有更聪明的方法?
旧网址示例:www.mysite.com/default.aspx?userId={id}
新网址示例:www.mysite.com/pwzd4r9niy
您可以为此使用任何类型的随机字符串生成器或 GUID。我认为没有更聪明的方法。(Palantir 提供了一个不错的替代方案,对传入的 URL 进行哈希处理。)
剩下的就相对简单了:保留一个带有 ID 和目标 URL 的数据库表;当请求进来时,查找 ID 并header
重定向到目标 URL。
此博客文章中的更多讨论。
现在也有重定向服务,使用字典列表中的单词来构建 URL。
可悲的是,EvilURL 不见了!它用于创建“短”网址,例如
http://evilURL.com/donkey_porn-shotguns/cracking-virus-exploit
那是唯一真正值得的 URL 重定向服务。:)
而且,作为一个琐事,http://to
它是人类已知的最短的重定向服务(并且,我认为是最短的 Web URL)。
只需将整个字符串散列到合理的长度即可。