Client URLs need to be able to hold state—that is, you can put them in the clipboard and open in a new browser window and get exactly the same view. They key is that the client needs to be able to render a particular layout against a data. There are multiple parts to doing this:
/#/
marks that it is all client side/a/
is just a short markerhttps://api.example.com/
and we are loading https://api.example.com/todo/5
then on the bookmarkable URL we will map todo/5
back to the original url.Note: this approach is not HTML5 because it does not return to the server for server-side rendering of the page. This means that the entire URL is the ‘state’ and is only known to the client.
<link rel="api" href="http://localhost:5000/"/>
in <head>
)