URL缩短:什么是最好的编码使用?

时间:2009-09-11 17:30:46

标签: encoding url-shortener

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

我想知道用于生成的短网址的最佳编码/字母是什么。 这在很大程度上是一个主观问题,我想知道您对最佳方法/权衡的意见。

我想到的几个选项:
- 数字,大写+小写(基数62)
- 数字,仅小写(基数36)
- Base 32(http://www.crockford.com/wrmg/base32.html
- linkpot.net(使用常见的简短英语单词)

当然,除了点击之外的其他用途,后两者更好,前两个更适合Twitter。

此外,如果我使用“仅可点击”网址,我想尽可能地使字母变大,添加其他符号。

  • 我可以在不会进行URL编码的网址中使用哪些符号?
  • 我使用应该的符号是什么?其中一些可能有问题吗?例如,我正在考虑斜线和点。

您怎么看?

注意:这些网址的主要目标是Twitter。牢记这一点,我们应该拥有最大的字母表,因为大多数人都会点击。但是,我对使用其他方式使用短URL(通过电话,打印纸等)的人们的体验感兴趣。这种情况发生的可能性有多大?

注2:我没有制作“另一个URL缩短器”,请不要用downvotes来谴责我。我们正在为我们网站中的内部内容生成短网址,不允许任何人缩短任何网址。想象一下,当您生成指向特定坐标的链接时,Google地图会为您提供简短的网址。

3 个答案:

答案 0 :(得分:3)

我会选择Base-62,它是最短的。缩短的URL并不意味着有人手动输入,所以不要担心区分大小写。

答案 1 :(得分:2)

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

这是a page that discusses one way to do this

如果要仔细检查,可以查看RFC2396以确切了解URI中哪些字符是安全的。

答案 2 :(得分:2)

我很想知道有关实施的更多信息。这些URL如何“未被缩短”,或者被访问的内部页面是否会被保存为缩短的URL?在任何一种情况下,即使您使用[A-Z]的编码集,您也可以引用26 * 26 * 26 = 17,576页,只有3个字符;你在谈论多少内部网页?

一般情况下,我会依靠您的用例要求来选择正确的编码集。您是否计划将这些链接用于“非点击使用”?这些用途是什么,你怎么怀疑他们会改变编码? (例如,在不区分大小写的文件系统上使用URL的一部分作为文件名会减少可用的字符集。)

Here's您在撰写网址时可以使用的字符集信息页。