Как работают динамические фильтры в интернет-магазинах?
Делать 1 большую таблицу или разбивать на части?
Делаете таблицу в параметрами, при запросе делаете выборку по параметрам из этой таблицы. 
Возвращать удобнее голые данные в json (заодно и общее количество присылать) и рендерить на клиенте.
Урл меняется методами History API
С точки зрения фронта всё довольно просто — послали запрос, получили данные, перерисовали страницу.
На бэке приняли запрос, сходили в БД, составили json-ответ, отдали клиенту.