No veo mucha diferencia entre los parámetros y las cadenas de consulta en la URL. Entonces, ¿cuál es la diferencia y cuándo se debe usar uno sobre el otro?
url
query-string
url-parameters
Konst
fuente
fuente
Respuestas:
El componente de consulta se indica con el primero
?
en un URI. "Cadena de consulta" puede ser un sinónimo (este término no se utiliza en el estándar URI).Algunos ejemplos de HTTP URI con componentes de consulta:
( lista de caracteres permitidos en el componente de consulta )
El "formato" del componente de consulta depende de los autores de la URI. Una convención común ( pero nada más que una convención, en lo que respecta al estándar URI ¹) es usar el componente de consulta para pares clave-valor, también conocido como. parámetros , como en el último ejemplo anterior:
bar1=a&bar2=b
.Estos parámetros también podrían aparecer en los otros componentes de URI, es decir, la ruta² y el fragmento. En lo que respecta al estándar URI, depende de usted qué componente y qué formato usar.
URI de ejemplo con parámetros en la ruta, la consulta y el fragmento:
¹ El estándar URI dice sobre el componente de consulta :
² El estándar URI dice sobre el componente de ruta :
fuente
Los parámetros son pares clave-valor que pueden aparecer dentro de la ruta de URL y comienzan con un carácter de punto y coma (
;
).La cadena de consulta aparece después de la ruta (si la hay) y comienza con un signo de interrogación (
?
).Tanto los parámetros como la cadena de consulta contienen pares clave-valor.
En una
GET
solicitud, los parámetros aparecen en la propia URL:En una
POST
solicitud, los parámetros pueden aparecer en la propia URL, pero también en el flujo de datos (conocido como contenido).La cadena de consulta siempre forma parte de la URL.
Los parámetros se pueden enterrar en el
form-data
flujo de datos cuando se usa el método POST, por lo que es posible que no aparezcan en la URL. Sí, unaPOST
solicitud puede definir parámetros como datos de formulario y en la URL, y esto no es inconsistente porque los parámetros pueden tener varios valores.Hasta ahora no he encontrado una explicación para este comportamiento. Supongo que a veces puede ser útil "mostrar" los parámetros de una
POST
solicitud, o incluso dejar que el código que maneja unaGET
solicitud comparta algunas partes con el código que maneja aPOST
. Por supuesto, esto solo puede funcionar con parámetros de soporte de código de servidor en una URL.Hasta que obtenga mejores conocimientos, le sugiero que utilice parámetros solo en el
form-data
flujo de datos de lasPOST
solicitudes.Fuentes:
Lo que todo desarrollador debe saber sobre las URL
RFC 3986
fuente