Encoding URL缩短:什么';什么是最好的编码?

Encoding URL缩短:什么';什么是最好的编码?,encoding,url-shortener,Encoding,Url Shortener,我正在为我的项目添加一个功能,我们正在生成指向我们网站内部内容的链接,我们希望这些链接尽可能短,因此我们将制作自己的“URL缩短器” 我想知道生成的短URL最好使用什么编码/字母表。 这主要是一个主观问题,我想知道你对最佳方法/权衡的看法 我想到了几个选择: -数字,大写+小写(基数62) -数字,仅小写(基数36) -基数32() -linkpot.net(使用常用英文短词) 当然,第二种方法比点击更好,前两种方法更适合Twitter 另外,如果我要使用“只能点击”的URL,我想让字母表尽可能

我正在为我的项目添加一个功能,我们正在生成指向我们网站内部内容的链接,我们希望这些链接尽可能短,因此我们将制作自己的“URL缩短器”

我想知道生成的短URL最好使用什么编码/字母表。 这主要是一个主观问题,我想知道你对最佳方法/权衡的看法

我想到了几个选择:
-数字,大写+小写(基数62)
-数字,仅小写(基数36)
-基数32()
-linkpot.net(使用常用英文短词)

当然,第二种方法比点击更好,前两种方法更适合Twitter

另外,如果我要使用“只能点击”的URL,我想让字母表尽可能大,添加其他符号

  • 我可以在不进行URL编码的URL中使用哪些符号
  • 我应该使用什么符号?其中一些可能会有问题吗?例如,我在想斜线和点
你觉得怎么样

注意:这些URL的主要目标是Twitter。记住这一点,我们可能会有最大的字母表,因为大多数人都会点击。然而,我对你在其他方面(通过电话、印刷纸等)使用短URL的经验很感兴趣。这种情况发生的可能性有多大

注2:我不是在做“又一个网址缩短者”,请不要用反对票谴责我。我们正在为网站的内部内容生成短URL,不允许任何人缩短任何URL。想象一下,当您生成指向特定坐标的链接时,Google Maps会为您提供简短的URL。

如果这些是“只能单击的URL”,我可能会使用base-64编码。MIME的base-64使用了一些您不应该使用的字符,但是URL中有足够多的未保留的安全字符,您可以将它们替换掉。(此外,您不需要MIME的base-64使用的填充,因为您知道URL何时结束。)

给你


如果您想再次检查,您可以查看以确定URI中哪些字符是安全的。

我很想了解有关实现的更多信息。这些URL将如何“取消排序”,或者访问的内部页面将保存为缩短的URL?在任何一种情况下,即使使用[A-Z]的编码集,也可以仅用3个字符引用26*26*26=17576页;你在谈论多少个内部网页

一般来说,我会根据您的用例需求来选择正确的编码集。您是否计划将这些链接用于“除单击外的其他用途”?这些用途是什么?您认为它们会如何改变编码?(例如,在不区分大小写的文件系统上使用URL的一部分作为文件名会减少可用的字符集。)


写URL时可以使用的字符集信息页面。

我选择Base-62,它是最短的。缩短的URL并不意味着任何人都可以手动输入,因此不必担心区分大小写。

谢谢您的回答。在内部,我将有用户创建的“实体”,它将有一个唯一的整数ID。然后,我将公开这些作为缩短的URL,只是为了使它在twitter上更短。。。因此,您可以使用mydomain.com/1525343或mydomain.com/a4D,这对我来说意味着相同,但它会更短。如果这些将被外部客户端使用,我会倾向于更简单的编码范围,如[0-9a-z]。我不会包含[A-Z],这样用户就可以手动输入URL,而不用担心大小写。即使是这样的36个字符范围,您也可以完成大量的缩短。例如,仅5个字符就可以生成60466176个唯一的缩短URL。