2010-11-10 91 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。

這可以將您的問題降低爲決定高效的二進制表示形式(即數據壓縮問題)之一。像霍夫曼編碼或算術編碼這樣的想法可能會很有用 - 它確實取決於屬性集的範圍。