visualización servicio parametros etiquetas condiciones url query-parameters

servicio - ¿Es un parámetro de consulta url válido si no tiene ningún valor?



parametros url (8)

Especificación URI

La única parte relevante de la especificación URI es saber todo entre la primera ? y el primer # ajusta a la definición de consulta de la especificación. Puede incluir cualquier carácter como [:/.?] . Esto significa que una cadena de consulta como ?bar , o ?ten+green+apples es válida.

Encuentre el RFC 3986 aquí

Especificación de HTML

isindex no es significativamente HTML5.

Se proporciona obsoleto para su uso como el primer elemento de un formulario únicamente y se envía sin nombre.

Si el nombre de la entrada es "isindex", su tipo es "text", y esta es la primera entrada en el conjunto de datos del formulario, a continuación, agregue el valor para resultar y omita el resto de los subepsos para esta entrada, pasando a la siguiente entrada, si alguna, o el siguiente paso en el algoritmo general de lo contrario.

El indicador isindex es solo para uso heredado. Las formas de conformar documentos HTML no generarán cargas útiles que deban decodificarse con este conjunto de banderas.

La última vez que se soportó isindex fue HTML3 . Su uso en HTML5 es proporcionar compatibilidad hacia atrás más fácil.

Soporte en bibliotecas

El soporte en bibliotecas para este formato de URI varía, sin embargo, algunas bibliotecas proporcionan soporte heredado para facilitar el uso de isindex .

Perl URI.pm (soporte especial)

Algunas bibliotecas como URI.pm proporcionan métodos para analizar este tipo de estructuras

$uri->query_keywords $uri->query_keywords( $keywords, ... ) $uri->query_keywords( /@keywords ) Sets and returns query components that use the keywords separated by "+" format.

Node.js url (sin soporte especial)

Como otro ejemplo mucho más frecuente, node.js toma la ruta normal y facilita el análisis como

  • Una cuerda
  • o, un objeto de claves y valores (usando parseQueryString )

La mayoría de las demás API de análisis de URI siguen algo similar a esto.

  • PHP parse_url , sigue una implementación similar pero solo devuelve la cadena para la consulta. El análisis en un objeto de k=>v requiere parse_string()

¿Es válida una URL como http://example.com/foo?bar ?

Estoy buscando un enlace a algo oficial que diga de una forma u otra. Una simple respuesta sí / no o evidencia anecdótica no lo cortará.


"El esquema" http "se usa para localizar recursos de red a través del protocolo HTTP. Esta sección define la sintaxis y la semántica específicas del esquema para las direcciones URL de http. http://www.w3.org/Protocols/rfc2616/rfc2616.html

http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

Entonces, sí, todo es válido después de un signo de interrogación. Su servidor puede interpretar de manera diferente, pero de manera anecdótica , puede ver que algunos lenguajes lo tratan como un valor booleano que es verdadero si aparece en la lista.


Como todas las otras respuestas descritas, es perfectamente válido para verificar, especialmente para cosas booleanas

Aquí hay una función simple para obtener la cadena de consulta por nombre:

function getParameterByName(name, url) { if (!url) { url = window.location.href; } name = name.replace(/[/[/]]/g, "//$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''''; return decodeURIComponent(results[2].replace(//+/g, " ")); }

y ahora desea verificar si la cadena de consulta que está buscando existe o no, puede hacer algo simple como:

var exampleQueryString = (getParameterByName(''exampleQueryString'') != null);

el exampleQueryString será false si la función no puede encontrar la cadena de consulta, de lo contrario será true .


Ellos son perfectamente válidos. Podrías considerar que son el equivalente del tipo grande y musculoso parado silenciosamente detrás del mensajero de la mafia. El tipo no tiene un nombre y no habla, pero su mera presencia transmite información.



Si, es valido

Si uno simplemente quiere verificar si el parámetro existe o no, esta es una forma de hacerlo.


isindex de HTML5 permite el envío de un formulario para generar dicha URL, proporcionando una mayor evidencia de que es válida para HTML. P.ej:

<form action="#isindex" class="border" id="isindex" method="get"> <input type="text" name="isindex" value="bar"/> <button type="submit">Submit</button> </form>

genera una URL de tipo:

?bar

Estándar: https://www.w3.org/TR/html5/forms.html#naming-form-controls:-the-name-attribute

isindex embargo, isindex está en desuso como se menciona en: https://.com/a/41689431/895245


  • Válido para URI RFC
  • Probablemente aceptable para su marco / código del lado del servidor

El URI RFC no ordena un formato para la cadena de consulta. Aunque se reconoce que la cadena de consulta a menudo llevará pares de nombre-valor, no es necesario (por ejemplo, a menudo contendrá otro URI).

3.4. Consulta

El componente de consulta contiene datos no jerárquicos que, junto con los datos en el componente de ruta (Sección 3.3), sirven para identificar un recurso dentro del alcance del esquema del URI y la autoridad de denominación (si corresponde). ...

... Sin embargo, como los componentes de consulta a menudo se utilizan para llevar información de identificación en forma de pares "clave = valor" y un valor de uso frecuente es una referencia a otro URI, ...

HTML establece que un formulario enviado a través de HTTP GET debe codificar los valores del formulario como pares de nombre-valor en el formato "? Key1 = value1 & key2 = value2 ..." (codificado correctamente). El análisis de la cadena de consulta depende del código del lado del servidor (por ejemplo, el motor de servlet Java).

No identifica qué marco del lado del servidor utiliza, si lo hay, pero es posible que su infraestructura del lado del servidor suponga que la cadena de consulta siempre estará en pares nombre-valor y puede obstruir una cadena de consulta que no es en ese formato (por ejemplo ?bar ). Si es su propio código personalizado que analiza la cadena de consulta, simplemente debe asegurarse de manejar ese formato de cadena de consulta. Si es un marco, deberá consultar su documentación o simplemente probarla para ver cómo se maneja.