¿Cuándo usar parámetros de consulta frente a parámetros de matriz?

Parámetros de consulta : http://example.com/apples?order=random&color=blue

Parámetros de la matriz : http://example.com/apples;order=random;color=blue

  1. ¿Cuándo debería uno usar parámetros de consulta versus parámetros de matriz?
  2. ¿Por qué los parámetros de matriz se pueden usar en el medio de una URL pero los parámetros de consulta no pueden? Por ejemplo: http://example.com/apples;order=random;color=blue/2006/archive
  3. Si los parámetros de la matriz son un superconjunto de parámetros de consulta, ¿por qué no usarlos todo el tiempo?

Puede leer más sobre los parámetros de la matriz aquí: http://www.w3.org/DesignIssues/MatrixURIs.html

Las diferencias entre los parámetros de Matrix y Query Parameters son mucho más que solo una convención.

Las principales diferencias son:

  • Las URL con parámetros de consulta no tendrán su respuesta almacenada en caché por intermediarios / proxies (en este momento)
  • los parámetros de la matriz pueden aparecer en cualquier lugar de la ruta
  • calcular el relativo uri es diferente
  • los parámetros de consulta generalmente se utilizan para agregar verbos nuevos en lugar de utilizar los métodos existentes en los recursos
  • los parámetros de la matriz no son recursos, son aspectos que ayudan a hacer referencia a un recurso en un espacio de información que es difícil de representar dentro de una jerarquía
  • Lo escribí con más detalle y con más referencias en los parámetros Query vs. Matrix