100

我想知道 URL Shortener 是如何工作的,例如他们如何从地址栏中提取文本并将其映射到正确的 URL,然后将其重定向。他们使用什么编程语言?他们如何维护映射的历史?他们如何确保缩短网址的唯一性?外行如何在不访问 URL 的情况下取消映射?

4

3 回答 3

44

维基是你的朋友

基本上,名称较短的网站用作占位符,例如 bit.ly。

然后,bit.ly 生成一个密钥供用户提供,该密钥是随机生成的,不会重复。使用 35 个字符选项和 8 个左右的值,计算一下。这是很多可能的键。如果 URL 等于先前存在的密钥,我记得在某处读到他们也重用密钥。

他们并没有真正使用特定的编程语言,他们只是使用简单的 URL 重定向,这可以通过 HTTP 响应状态代码 301、302、307 或 308 来完成,具体取决于。

于 2011-01-01T00:06:57.007 回答
27

URL 缩短器只是生成一个短代码,将目标 URL 映射到该短代码,并提供一个新 URL。访问 URL 会使用短代码作为键执行数据库查找,并将您重定向到目标 URL。缩短的 URL 和目标 URL 之间没有算法关联,因此如果不通过 URL 缩短器的系统,就无法“取消映射”它。

您可以使用任何编程语言和数据存储来完成。代码生成对于确保唯一性也很简单;如果你有一个递增的主整数键,你可以简单地将键编码为 base62 并提供它。由于代码本质上是增量的,因此您永远不会发生冲突。

于 2011-01-01T00:01:57.913 回答
20

这个过程实际上非常简单:有一个脚本询问 URL,生成一个随机字符串(并验证该字符串是否尚未使用),然后将两者放入某种数据库中。当您请求一个 url 时,另一个脚本会在数据库中查找随机字符串,如果找到则将您重定向到该站点。

由于需要诸如防止滥用、URL 过滤、垃圾邮件预防、URL 验证等功能,这在生产中当然会更加复杂。但这些实现起来非常简单。


语言无关紧要,大多数人都会这样做。

于 2011-01-01T00:01:32.977 回答