Lección 2

Modelos de parámetros de consulta

Comprende claves repetidas, valores vacíos, flags, arrays y diferencias entre frameworks.

Las cadenas de consulta parecen pares clave-valor simples, pero distintos frameworks las modelan de forma distinta.

?tag=api&tag=json&draft=&preview

Un analizador podría ver:

  • tag como dos valores
  • draft como cadena vacía
  • preview como flag o como valor vacío

Claves repetidas

Las claves repetidas son legales en una cadena de consulta:

?tag=frontend&tag=backend

Algunos frameworks conservan el último valor. Algunos recopilan todos los valores en un array. Algunos requieren una convención de nomenclatura como tag[].

Valores vacíos y flags

Estos no son idénticos en todos los sistemas:

?debug
?debug=
?debug=true

Si el servidor trata la presencia como verdadero, ?debug puede bastar. Si espera una cadena booleana, puede necesitar debug=true.

Orden

Para filtrado ordinario, el orden de parámetros normalmente no importa. Para firmas y claves de caché, el orden puede importar mucho. Las URLs firmadas a menudo requieren un orden canónico y codificación porcentual exacta.

Modelo mental más seguro

No asumas que analizar y reconstruir una consulta es inofensivo. Decide cómo trata tu aplicación:

  • Claves repetidas
  • Cadenas vacías
  • Valores ausentes
  • Sintaxis de arrays
  • Ordenación
  • Codificación de espacios y signos más

Una vez que esas reglas son explícitas, los errores de URL son mucho más fáciles de reproducir.

Volver al resumen del curso