Menu
Coddy logo textTech

Codificação de formulários

Lição 34 de 47 do curso Redes com o Terminal da Coddy.

Quando você usa -d, o curl adiciona um cabeçalho descrevendo o formato do corpo:

Content-Type: application/x-www-form-urlencoded

Esse nome longo é o formato que os formulários HTML sempre usaram: pares key=value unidos por &. O servidor lê esse cabeçalho e sabe que deve dividir o corpo nesses caracteres.

O que levanta a pergunta óbvia: e se um valor contiver um & ou um =? Ele precisa ser escapado, escrito como um sinal de porcentagem e dois dígitos hexadecimais. Um espaço se torna %20 ou +, e um e comercial se torna %26.

--data-urlencode faz esse escape por você, e você deve preferi-lo para qualquer coisa digitada por uma pessoa. Enviar uma entrada bruta do usuário usando apenas -d é o motivo pelo qual os campos são truncados misteriosamente no primeiro e comercial.

challenge icon

Desafio

Difícil

Confirme o cabeçalho que o curl escolhe para você.

  1. Inicie o listener de captura na porta 9124
  2. Faça um POST de a=1 com -d
  3. Imprima a linha Content-Type de req.txt

Saída esperada:

Content-Type: application/x-www-form-urlencoded

Faça a correspondência sem diferenciar maiúsculas de minúsculas e ancore no início da linha.

Experimente você mesmo

Terminal
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Redes com o Terminal

Pratique por conta própria: Playground de Terminal