¿Qué significan %5B y %5D en las solicitudes POST?

2 minutos de lectura

avatar de usuario
Rakib Ansary

Estoy tratando de escribir una clase de Java para iniciar sesión en un sitio web determinado. Los datos enviados en la solicitud POST para iniciar sesión son

user%5Blogin%5D=username&user%5Bpassword%5D=123456

Tengo curiosidad por lo que %5B y %5D significa en la clave inicio de sesión de usuario.

¿Cómo decodifico estos datos?

avatar de usuario
Boris Strandjev

Según esta respuesta aquí: str="foo%20%5B12%5D" codifica foo [12]:

%20 is space
%22 is quotes
%5B is '['
and %5D is ']'

Se llama codificación porcentual y se utiliza para codificar caracteres especiales en los valores de los parámetros de URL.

EDITAR Por cierto mientras leía https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Description, se me acaba de ocurrir por qué tanta gente hace la misma búsqueda. Vea la nota en la parte inferior de la página:

También tenga en cuenta que si uno desea seguir el más reciente RFC3986
para las URL, reservar los corchetes (para IPv6) y, por lo tanto, no codificarlos al formar algo que podría ser parte de una URL (como un host), lo siguiente puede ayudar.

function fixedEncodeURI (str) {
    return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}

Con suerte, esto ayudará a las personas a resolver sus problemas cuando se encuentren con esta pregunta.

Ellos representan [ and ]. La codificación se llama “Codificación de URL”.

avatar de usuario
Lalit Bhudiya

[] es reemplazado por %5B%5D en el momento de la codificación de URL.

Bueno, es lo habitual codificación de URL

Entonces ellos representan [, respectively ]

avatar de usuario
Xeriaz

Para averiguar estos valores, simplemente puede usar Consola en su navegador y hacer lo siguiente

console.log(decodeURI('user%5Blogin%5D=username&user%5Bpassword%5D=123456'))

avatar de usuario
Krzysztof Przygoda

Para echar un vistazo rápido, puede porcentaje-en/decodificar usando esta herramienta en línea.

avatar de usuario
mwfearnley

Los datos probablemente se habrían publicado originalmente desde un formulario web con un aspecto similar a este (pero probablemente mucho más complicado):

<form action="http://example.com" method="post">

  User login    <input name="user[login]"    /><br />
  User password <input name="user[password]" /><br />

  <input type="submit" />
</form>

Si el método fuera “obtener” en lugar de “publicar”, hacer clic en el botón Enviar lo llevaría a una URL parecida a esta:

http://ejemplo.com/?usuario%5Blogin%5D=nombre de usuario&usuario%5Bcontraseña%5D=123456

o:

http://ejemplo.com/?usuario[login]= nombre de usuario y usuario[password]=123456

El servidor web en el otro extremo probablemente tomará el user[login] y user[password] parámetros y convertirlos en un user objeto con login y password campos que contienen esos valores.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad