哈希参数对于单页 javascript 应用程序很有用,它允许 javascript 向用户呈现应用程序状态的可共享 url。这是首选,因为如果您有一个单页 javascript 应用程序并且用户通过 ajax 导航和加载更多内容并共享 url,而无需修改散列或推送状态,则接收内容的人将获得主页或开始状态。哈希参数可以很容易地修改并通过 javascript 读取,而无需重新加载页面。
散列参数通常只在客户端使用,散列参数不会传递给服务器......所以它们只对客户端的参数化有用。
/users#!/13
将加载用户索引页面,然后 javascript 可以读取哈希
window.location.hash
并通过某种客户端路由器传递它并发出适当的ajax请求,并可能加载用户显示模板并将其推送到dom。
网址参数和网址路径在某种程度上可以互换。人们通常使用 url 路径来描述 restful 资源,例如
/users/[:id] => /users/13 => /users?id=13
/users/:id/posts => /users/13/posts
/users/:user_id/posts/:id => /users/13/posts/22
etc......
@Walter Tross,从 SEO 的角度提出了一个很好的观点。Slugged url 或“URL 参数”更容易被爬虫索引,并且往往排名更高。
对于不适合资源丰富的路由的参数,我们将它们作为参数发送
/users?sort=user_name&order=asc