首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现无损URL缩短

如何实现无损URL缩短
EN

Stack Overflow用户
提问于 2011-08-19 07:14:12
回答 1查看 1.4K关注 0票数 2

首先,介绍一下背景:

我试图在我自己的服务器上实现一个URL缩短(如果这很重要的话,用C语言)。目的是避免长URL,同时能够从缩短的URL恢复上下文。

目前,我有一个在服务器上创建一个会话的实现,它由特定的ID标识。这可以工作,但会消耗服务器上的内存(因为它是一个资源有限的嵌入式服务器,设备的主要用途不是提供网页,而是做其他很酷的事情)。

另一种选择是使用、cookies、HTML5网络存储将会话信息存储在客户机中。

但我正在寻找的是,是否有可能将缩短的参数存储在中,其中一个参数是我附加到URL中的,并且能够从该参数中重新构造原始参数。

第一种想法是使用Base64-encoding将所有参数放入其中,但这会产生更大的URL。

目前,我正在考虑压缩URL参数(使用一些压缩算法,如zip、bz2、.),对压缩的二进制blob进行Base64 64编码,并使用这些信息作为上下文。当我得到参数时,我可以做一个have 64解码,解压缩结果,并掌握原始的URL。

的问题是:还有其他的可能,我可以忽略它,将大量的URL参数列表压缩成一个更小的列表

更新:

在收到家里的评论后,我意识到我忽略了压缩本身会给压缩数据增加一些开销,使得压缩的数据甚至比原始数据还要大,因为例如拉链增加了内容的开销。

因此(如home在他的评论中所述),我开始认为压缩整个URL参数列表只有当参数超过一定长度时才是真正有用的,否则,我最终可能会有一个比以前更大的URL。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-22 09:36:31

你可以随时滚动自己的压缩。如果您简单地应用一些赫夫曼编码,结果总是更小(但是base64编码它,它会增长一点,所以网络效果可能不是最佳的)。

我在一个嵌入式项目上使用自定义压缩策略,我首先使用的是伊兹吉布 (一个lempel ziv派生程序,遵循源代码链接,非常严格的实现(来自开放solaris)),然后是编写压缩结果的huffman。

但是lzjb算法在非常短的输入上表现不太好(大约16字节,在这种情况下,我没有压缩它)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7118159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档