There is already a scheme used for encoding parameters that does not require a unique integer id into a lookup table. return_url works like this, urlencoding the host/path etc. PLUS any query params. A page which is passed a return_url can itself urlencode that and any other params as the new return_url and pass it on. The stack unwinds as the pages return.</i></blockquote>
This is in essence what I've done at birdnotes.net. I treat the context bar information as a stack, pushing down when I enter a new page and popping off the correct number of elements when I go up. This is computed whenever links are computed and put on the page, and the information is passed as part of the query string. This is overly simplistic because navigation isn't always quite this clean but for the sake of discussion we can pretend this works, keeping in mind the fact that there will be exceptions to the nice clean picture in real systems.
<p>The problem is that the URLs get huge and very ugly very fast. None of my users have complained and they like the navigation, but it's not a clean solution.
<p>Lars is trying to come up with a solution that holds the necessary information but without doing something as obvious or ugly as encoding the information in the query string.
<p>At least I think that's what he's trying to do, I've been too busy to read this thread closely :)
<blockquote><i> How aobut encoding the where you have been information directly in the URL. I have to look at the request processor again to see if this could actually work</i></blockquote>
It could be done but would suffer from the same problem as when passing it in the query string.