You can use Activities and Places design pattern:
https://developers.google.com/web-toolkit/doc/latest/DevGuideMvpActivitiesAndPlaces
It allows bookmarking any place within the app with whatever parameters you need for that particular place. For example, your URL may look like:
myApp.com/#SEARCH:user=123&key=xyz
Your search Activity will read this token and process it as you need it without reloading the page. You will also be able to "create" these URLs without reloading the page.