gpt4 book ai didi

url-shortener - URL 缩短器如何保证 URL 不会过期?

转载 作者:行者123 更新时间:2023-12-03 13:50:45 30 4
gpt4 key购买 nike

关闭。这个问题是off-topic .它目前不接受答案。












想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。

9年前关闭。




Improve this question




在 stackoverflow 上有很多关于 URL 缩短器以及互联网上其他地方的问题,例如

How to code a URL shortener?

How do URL shortener calculate the URL key? How do they work?

http://www.codinghorror.com/blog/2007/08/url-shortening-hashes-in-practice.html

但是,有一点我不明白。例如,http://goo.gl目前使用四个字符。但是,他们声称他们的短 URL 不会过期。正如关于编码恐怖的文章中提到的,如果他们无法回收 URL,唯一可能的解决方案是在某一时刻添加一个额外的字符。

好的,到目前为止一切顺利。 4 个字符意味着大约 1500 万个唯一地址。对于像谷歌地图这样的东西,我认为这不是很多,如果你不能回收,我猜他们很快就会用完可用的地址。

现在对于我没有得到的部分。在分发地址时,他们开始用完未使用的地址。他们必须检查是否尚未发布新生成的地址。发生这种情况并且地址已经在使用中的机会增加了。直接的解决方案当然是一遍又一遍地生成一个新的 URL,直到他们找到一个免费的 URL,或者直到他们生成了所有 150 万个备选 URL。然而,这肯定不是他们实际的做法,因为这太耗时了。那么他们是如何管理的呢?

此外,可能有几个访问者同时要求一个短 URL,因此他们也必须进行一些同步。但是当需要添加第五个字符时,应该如何管理这种情况呢?

最后,在对来自 http://goo.gl 的 URL 进行一些研究时工作,当然我多次请求谷歌地图上的 map 的短网址。它们中的任何一个都不会被使用。但是,当 Google 严格执行 URL 发布后不过期的政策时,这意味着系统中存在大量休眠的 URL。同样,我假设谷歌(以及其他服务)也已经提出了解决这个问题的方法。我可以想象一个清理服务,它回收在创建后的前 48 小时内未访问过的 URL,或者在第一周内回收不到 10 次。我希望有人也可以对这个问题有所了解。

简而言之,我了解了 URL 缩短器的一般原理,但是当这些 URL 不能过期时,我发现了几个问题。有谁知道上面提到的问题如何解决,还有其他问题吗?

编辑

好的,所以 this博客文章阐明了一些事情。这些服务不会随机生成任何东西。它们依赖于底层数据库的自动增量功能,并对生成的 id 应用简单的转换。这消除了检查 id 是否已经存在(它不存在)和数据库处理同步的需要。那仍然没有回答我的三个问题之一。这些服务如何“知道”链接在创建后是否实际使用?

最佳答案

Why URL shorteners don't delete entries

我确实写了 TinyURL(十年前)来回馈我不需要的条目。他们的回答让我意识到我是多么可笑:他们告诉我“只需创建您需要的所有 URL”。数字自己说话:

A - 使用 26 个小写字母 + 26 个大写字母 + 10 个数字(合理的网站选择),使用 ONE 字符为您提供 62 个位置(即 62 个缩短的 URL),然后每个附加字符将位置编号乘以 62:

  • 0 个字符 = 1 个 URL
  • 1 个字符 = 62 个 URL
  • 2 个字符 = 3,844(村庄中每个人的 1 个 URL)
  • 3 个字符 = 238,328(同上,在一个城市)
  • 4 个字符 = 14,776,336(在洛杉矶地区)
  • 5 个字符 = 916,132,832(在美洲,N+Central+S)
  • 6 个字符 ~ 56,800,235,580(世界上每个人 8 个 URL)
  • 7 个字符 ~ 3,521,614,606,000(每个人 503 个,世界上每个网页 4 个)
  • 8 个字符 ~ 218,340,105,600,000(每个人 31,191 个 URL)
  • 9 个字符 ~ 13,537,708,655,000,000(每个人约 200 万个 URL)
  • 10 个字符 ~ 839,299,365,900,000,000(每个人约 1200 亿个 URL)
  • 11 个字符 ~ 52,036,560,680,000,000,000

  • B - 实际上需求和用途低于人们的预期。很少有人创建短 URL,每个人创建的 URL 也很少。在大多数情况下,原始 URL 就足够了。结果是,最流行的缩短器,经过多年,仍然只用 4 或 5 个字符满足今天的需求,并且在需要时添加另一个字符几乎为零。显然 goo.gl 和 goo.gl/maps 都使用 5 个字符,youtube 使用 11 个(使用上面的 62 个字符,加上破折号和其他一些字符)。

    C - 托管(存储 + 运营)一个 URL 的成本是 1Terabyte 每年 1000 美元,每 TB 能够包含 50 亿个 URL,因此 1 个 URL 的托管成本为 0.2 微美元/年。但是Shortener的 yield 也很薄,因此业务不是很强大。对于用户来说,一个 URL 的好处很难评估,但是丢失的链接将比托管成本高得多。

    D - 如果短 URL 有可能在 future 几年失效,用户创建短 URL 是没有意义的,因此持久性是 Shortener 的主要吸引力,除非被迫,否则认真的 Shortener 可能永远不会停止为他们服务停业;然而这已经发生了,无论如何,短 URL 有很多缺点和好处,正如 Wikipedia "URL shortening" 中所解释的那样。 (针对用户、目标站点或 Shortener 的各种黑客攻击的风险;例如,可以通过 bot 请求千兆数量的 URL 来攻击 Shortener,大多数 Shortener 肯定会抵御这种威胁)。

    凡尔赛,2013 年 3 月 12 日星期二 20:48:00 +0100,编辑时间 21:01:25

    关于url-shortener - URL 缩短器如何保证 URL 不会过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11326598/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com