2010-11-10 3 views
0

У меня есть веб-приложение, которое использует различные параметры строки запроса для выполнения других действий. Эти параметры строки запроса являются аддитивными атрибутами, что означает, что пользовательские действия изменяют, какие из них предоставляются, или даже порядок того, что предоставляется.URL-адрес Уточнение параметра атрибута

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

В приведенных выше URL-адресах оба результата приводят к тому же визуализации страниц. Страница загружается динамически, извлекает атрибуты и перемещает их в другую службу, которая их использует. Порядок не имеет значения.

Я хотел бы найти способ конденсировать значения MyParam в хеширован строку какого-то, так что мои Urls могли бы выглядеть следующим образом ...

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

Я считал простым шифрование/дешифрование, но это привело к созданию более чем идеальной строки.

В настоящее время я играю с идеей хэш-таблицы в памяти, втянутой при запуске приложения из базы данных, но для этого потребуется заполнить базу данных всеми возможными перестановками ... не то, что я хочу делать.

Другие варианты?

ответ

0

Создайте эффективное двоичное представление вашего набора атрибутов, а затем закодируйте его в URL-адрес, используя base64.

Это уменьшает вашу проблему до решения эффективного двоичного представления, которое представляет собой проблему сжатия данных. Идеи, такие как кодировка Хаффмана или арифметическое кодирование, могут быть полезны - это действительно зависит от диапазона вашего набора атрибутов.