When to use query parameters versus matrix parameters?
UriQuery ParametersUri Problem Overview
Query parameters: http://example.com/apples?order=random&color=blue
Matrix parameters: http://example.com/apples;order=random;color=blue
- When should one use query parameters versus matrix parameters?
- Why can matrix parameters be used in the middle of a URL but query parameters cannot? For example:
http://example.com/apples;order=random;color=blue/2006/archive
- If matrix parameters are a superset of query parameters, why not use them all the time?
You can read more about matrix parameters here: <http://www.w3.org/DesignIssues/MatrixURIs.html>
Uri Solutions
Solution 1 - Uri
The differences between Matrix parameters and Query Parameters are much more than just convention.
The main differences are:
- urls with query params won't have their response cached by intermediaries/proxies (at present)
- matrix parameters may appear anywhere in path
- calculating the relative uri is different
- query params are generally abused to add new verbs instead of using existing methods on resources
- matrix parameters are not resources, they are aspects that help reference a resource in an information space that is difficult to represent within a hierarchy
I've written it up in more detail and with more references in http://web.archive.org/web/20130126100355/http://brettdargan.com/blog/2009/01/16/query-vs-matrix-params">Query vs. Matrix Parameters