何时使用查询参数与matrix参数?

查询参数http://example.com/apples?order=random&color=blue : http://example.com/apples?order=random&color=blue

matrix参数http://example.com/apples;order=random;color=blue : http://example.com/apples;order=random;color=blue

  1. 什么时候应该使用查询参数与matrix参数?
  2. 为什么matrix参数可以在URL的中间使用,但查询参数不能? 例如: http://example.com/apples;order=random;color=blue/2006/archive : http://example.com/apples;order=random;color=blue/2006/archive
  3. 如果matrix参数是查询参数的超集,为什么不一直使用它们?

你可以在这里阅读更多关于matrix参数: http : //www.w3.org/DesignIssues/MatrixURIs.html

Matrix参数和查询参数之间的差异不仅仅是约定。

主要区别是:

  • 具有查询参数的URL 不会被中介/代理caching (目前)
  • matrix参数可能出现在path的任何地方
  • 计算相对uri是不同的
  • 查询参数通常被滥用来添加新的动词,而不是在资源上使用现有的方法
  • matrix参数不是资源,它们是帮助引用信息空间中难以在层次结构中表示的资源的方面
  • 我已经更详细地写了它,并在查询与matrix参数中有更多的参考