Codificación de formularios
Lección 34 de 47 del curso Redes con la terminal de Coddy.
Cuando usas -d, curl añade un encabezado que describe el formato del cuerpo:
Content-Type: application/x-www-form-urlencodedEse nombre tan largo es el formato que los formularios HTML siempre han utilizado: pares key=value unidos por &. El servidor lee ese encabezado y sabe que debe dividir el cuerpo usando esos caracteres.
Lo que plantea la pregunta obvia: ¿qué ocurre si un valor contiene un & o un =? Tiene que estar escapado, escrito como un signo de porcentaje y dos dígitos hexadecimales. Un espacio se convierte en %20 o +, y un ampersand se convierte en %26.
--data-urlencode realiza ese escapado por ti, y deberías preferirlo para cualquier cosa que haya escrito una persona. Enviar entradas de usuario sin procesar mediante un simple -d es la razón por la que los campos se truncan misteriosamente en el primer ampersand.
Desafío
DifícilConfirma el encabezado que curl elige por ti.
- Inicia el listener de captura en el puerto 9124
- Realiza un POST de
a=1con-d - Imprime la línea Content-Type de
req.txt
Salida esperada:
Content-Type: application/x-www-form-urlencodedIgnora las mayúsculas y minúsculas y ancla al inicio de la línea.
Pruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Redes con la terminal
4¿Es accesible?
ICMP y pingLectura de la salida de pingCuando ping mienteRechazado o agotado el tiempo de esperaRepaso: accesibilidad7Envío de datos
POST con -dQué envía realmente -dCodificación de formulariosEnvío de JSONPUT y DELETERepaso: escritura de datos2Nombres y DNS
Por qué existen los nombresEl archivo hostsBuscar un nombreTipos de registrosRepaso: nombresPractica por tu cuenta: Playground de Terminal