Я создаю функцию "Сужение результатов поиска", аналогичную Лучшие покупки и Новое яйцо. Как лучше всего хранить выбранные пользователем фильтры в URL-адресе, которым можно поделиться или добавить в закладки?
Очевидный выбор — просто сохранить все выборки пользователя в строке запроса. Однако оба этих примера делают нечто гораздо более загадочное:
Лучшая покупка: http://www.bestbuy.com/site/olstemplatemapper.jsp?id=pcat17080&type=page&qp=crootcategoryid%23%23-1%23%23-1~~q70726f63657373696e6774696d653a3e313930302d30312d3031~~cabcat0500000%23%230%23%2311a~~cabcat0502000%23%230%23%23o~~nf518||24363030202d2024383939&list=y&nrp=15&sc=abComputerSP&sp=%2Bcurrentprice+skuid&usc=abcat0500000
Похоже, они присваивают поиску какое-то уникальное значение и временно хранят его на своей стороне. Или, может быть, обернуть свои идентификаторы БД кучей мусора, потому что они верят в безопасность через неизвестность?
Есть ли какой-то неотъемлемый недостаток в сохранении таких простых вещей? www.mydomain.com?color=blue&type=laptop
Поэтому, когда я выбираю размер экрана 17 дюймов в качестве фильтра, он просто перезагружает страницу с добавленной дополнительной строкой запроса: www.mydomain.com?color=blue&type=laptop&screen-size=17
Кроме того, чтобы уточнить, я бы, вероятно, использовал соответствующие идентификаторы из базы данных в URL-адресе, чтобы упростить/ускорить проверку и синтаксический анализ, но остается вопрос о том, есть ли какая-то проблема, которую я упустил в своем простом подходе.
Заранее спасибо!