我想知道URL Shortener是如何工作的,比如他们如何从地址栏中提取文本并将其映射到正确的URL,稍后重定向它。他们使用什么编程语言?他们如何保持映射的历史?他们如何确保缩短网址的唯一性?一个外行人如何在不访问URL的情况下取消映射?
答案 0 :(得分:35)
基本上,名称较短的网站用作占位符,例如bit.ly。
然后,bit.ly生成一个供用户提供的密钥,该密钥随机生成,不再重复。使用35个字符选项和8个左右的值,进行数学运算。这是很多可能的关键。如果一个url等于以前存在的密钥,我记得在某个地方读过他们也重用了密钥。
他们并没有真正使用特定的编程语言,他们只是使用简单的URL重定向,我可以用HTML来完成。
答案 1 :(得分:23)
URL缩短器只生成一个短代码,将目标URL映射到短代码,并提供一个新的URL。访问URL将使用短代码作为密钥执行数据库查找,并将您重定向到目标URL。缩短的URL和目标URL之间没有算法关联,因此如果不通过URL缩短器的系统,就无法“取消映射”它。
您可以使用任何编程语言和数据存储来完成。代码生成对于确保唯一性也是微不足道的;如果你有一个递增的主整数键,你可以简单地将键编码为base62并提供。由于代码本质上是递增的,因此您永远不会发生冲突。
答案 2 :(得分:18)
实际上这个过程非常简单:有一个脚本要求输入URL,生成一个随机字符串(并验证该字符串尚未使用),并将两者放在某种数据库中。当您请求URL时,另一个脚本会在数据库中查找随机字符串,如果找到它会将您重定向到该站点。
由于滥用预防,URL过滤,垃圾邮件防护,URL验证等所需的功能,这在生产中当然更复杂。但这些实现起来非常简单。
语言无关紧要,大多数人都会这样做。