标签: url-shortener

短网址服务如何运作?

TinyURLMetamark等服务如何运作?
他们是否只是将微小的URL密钥与[虚拟?]网页相关联,该网页仅提供原始URL的"HTTP重定向"?或者它有更多的"魔力"吗?

[原创措辞]我经常使用网址缩短喜欢TinyURL的,METAMARK和其他服务,但我每次做的时候,我不知道这些服务是如何工作的.他们是否创建了一个新文件,该文件将重定向到另一个页面,或者他们是否使用子域?

url web-services bit.ly url-shortener short-url

102
推荐指数
4
解决办法
6万
查看次数

URL Shortener如何工作?

我想知道URL Shortener是如何工作的,比如他们如何从地址栏中提取文本并将其映射到正确的URL,稍后重定向它.他们使用什么编程语言?他们如何保持映射的历史?他们如何确保缩短网址的唯一性?如果不访问URL,非专业人员如何取消映射?

url tinyurl url-shortener

83
推荐指数
3
解决办法
3万
查看次数

类似YouTube的GUID

是否可以像在YouTube(N7Et6c9nL9w)中生成简短的GUID?

怎么做到呢?我想在网络应用中使用它.

.net c# url-shortener

47
推荐指数
5
解决办法
2万
查看次数

找到t.co链接的去向

给定t.co链接,我如何找到链接解析的位置?例如,如果我有t.co/foo,我想要一个返回domain.com/bar的函数或进程.

twitter url-shortener

28
推荐指数
4
解决办法
2万
查看次数

缩短/重组UUID

首先,我想确保我意识到这一事实,重新发布是一个明智的话题.但是我想听听你的一些意见,你会采取什么方法.

我正在构建一个分布式应用程序,其中节点远程创建由UUID标识的实体.最终,应该在专用的漏极节点处收集所有实体,该节点通过使用这些UUID来存储所有实体.

现在我想创建额外的标识符,这对人类用户来说更方便.编码UUID的Base64仍会创建22个字符的ID,这不适合人类使用.所以我需要像URL缩短服务这样的东西.应用双射函数无济于事,因为它们不会降低信息价值.当然,我知道我需要丢失信息才能缩短身份.而且我也知道任何哈希信息的减少都会增加冲突的可能性.我被卡住了,为了给人类创造更短的ID,减少信息的最合适的方法是什么.

以下是一些先决条件:我将提供通过我的数据存储映射{UUID,缩短ID}的功能.我仍然更喜欢非集中式解决方案.我可能永远不会需要超过大约一百万的ID(~2 ^ 20).

以下是我想到的想法:

  • 自动递增的ID:如果我使用某种自动递增的ID,我可以将此id转移到混淆的字符串并传递它.这将是最简单的方法,只要周围的键很少,键就不会很长.但是,我必须引入一个我不想要的集中实体.
  • 缩短UUID:我可以只取一些原始的128位uuid.然后我应该至少考虑UUID的版本.或者这有什么不对吗?
  • 重新划分UUID:我可以在我的初始UUID上应用第二个哈希算法并存储映射.

还有其他方法吗?有利的是什么?

提前致谢!

hash url-shortener

27
推荐指数
2
解决办法
2万
查看次数

URL缩短算法

现在,这不是严格意义上的URL缩短,但我的目的无论如何,所以让我们这样看.当然,URL缩短的步骤是:

  1. 获取完整的URL
  2. 生成唯一的短字符串作为URL的键
  3. 将URL和密钥存储在数据库中(键值存储将是完美的匹配)

现在,关于第二点.这是我想出的:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
UUID uuid = UUID.randomUUID();
dos.writeLong(uuid.getMostSignificantBits());
String encoded = new String(Base64.encodeBase64(baos.toByteArray()), "ISO-8859-1");
String shortUrlKey = StringUtils.left(encoded, 6); // returns the leftmost 6 characters
// check if exists in database, repeat until it does not
Run Code Online (Sandbox Code Playgroud)

这够好吗?

java url url-shortener

20
推荐指数
1
解决办法
2万
查看次数

jQuery即时URL缩短

我正在寻找一个即时的URL缩短器,就像tweetdeck的工作原理一样.我找到了许多jQuery和一般的javascript插件,它们接受一个url并在按下按钮时通过缩短服务(如bit.ly)运行它.但是,我还没能找到一个在飞行中做到这一点.我的第一个问题是这已经存在于某个地方吗?其次,如果没有,那么识别需要在文本框中缩短的URL的最佳方法是什么?我的想法:

  1. 在该文本区域的onKeyUp上运行查找http的文本
  2. 如果找到了抓取整个URL(我如何确定结束?可以是句号,逗号,空格等...)
  3. 确保该URL不是bit.ly URL
  4. 验证URL(发出请求并确保http响应不是错误,bit.ly已经这样做了吗?)
  5. 如果有效,请将URL发送到bit.ly的API并获取响应
  6. 将长URL替换为文本区域中的短URL.

思考?

javascript jquery url-rewriting bit.ly url-shortener

18
推荐指数
2
解决办法
3万
查看次数

URL缩短程序如何在未过期时保证唯一的URL?

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

如何编写URL缩短器代码?

URL缩短器如何计算URL密钥?他们是如何工作的?

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

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

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

现在对于我没有得到的部分.在分发地址时,它们开始耗尽未使用的地址.他们必须检查是否尚未发布新生成的地址.这种情况发生的可能性和地址已经在使用中增加了.当然,直接的解决方案是一遍又一遍地生成一个新的URL,直到他们找到一个免费的URL,或直到他们生成了所有150万个替代品.然而,这肯定不是他们实际上如何做到这一点,因为这将是非常耗时的.那么他们如何管理呢?

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

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

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


编辑

好吧,所以这篇博客文章揭示了一些事情.这些服务不会随机生成任何内容.它们依赖于底层数据库的自动增量功能,并对结果id应用简单转换.这消除了检查id是否已经存在(它没有)并且数据库处理同步的需要.这仍然使我的三个问题中的一个没有答案.这些服务如何"知道"链接是否在创建后实际使用?

url-shortener

17
推荐指数
1
解决办法
2万
查看次数

如何将t.co URL转换为原始推文?

我正在浏览我们的网站分析,并且有大量的t.co网址,这些网址是我们正在进行的促销活动的推介.我试图弄清楚是否有办法通过Twitter API或其他方式将这些转回原始推文.我似乎无法找到一个好的方法来做到这一点,是否有一个?

twitter url-shortener short-url

16
推荐指数
1
解决办法
3715
查看次数

仅使用Javascript使用Bit.ly API收缩URL

我现在正在玩Javascript ......我正在缩小一些使用bit.ly来推特的URL,然后我开始考虑一个可以使用他们的API缩小我想要的URL的自动化流程,然后我看了他们的文档,我看到他们只支持PHP(有一些Javascript),但无论如何,我只能使用Javascript进行此操作?

javascript api jquery bit.ly url-shortener

15
推荐指数
1
解决办法
2万
查看次数