Сокращение параметра атрибута URL - PullRequest
0 голосов
/ 10 ноября 2010

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

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 11 ноября 2010

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

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

...