2010-11-10 61 views
0

我有一个Web应用程序使用各种查询字符串参数来做其他事情。这些查询字符串参数是附加属性,这意味着用户操作会更改提供哪些参数或甚至提供的内容的顺序。URL属性参数缩短

Example URLs: 
http://dubdubdub.com/MyPage.aspx?MyParam=100+200+300 
http://dubdubdub.com/MyPage.aspx?MyParam=200+300+100 

在上面的示例URL中,两者都会导致相同的页面呈现。页面动态加载,提取属性并将它们转移到另一个使用它们的服务。该命令无关紧要。

我想找到一种方法,凝聚了MyParam值成某种形式的散列串,让我的网址也许能这个样子......

http://dubdubdub.com/5kjh345i/MyPage.aspx 

我认为简单加密/解密,但是这导致了比理想的字符串更大的值。

我现在玩的内存哈希表的想法,从应用程序启动拉入数据库,但这将需要我填充所有可能的排列数据库...不是我想要的做。

其他选项?

回答

0

创建属性集的高效二进制表示,然后使用base64将其编码为URL。

这可以将您的问题降低为决定高效的二进制表示形式(即数据压缩问题)之一。像霍夫曼编码或算术编码这样的想法可能会很有用 - 它确实取决于属性集的范围。