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-urlencodedEsse 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.
Desafio
DifícilConfirme o cabeçalho que o curl escolhe para você.
- Inicie o listener de captura na porta 9124
- Faça um POST de
a=1com-d - Imprima a linha Content-Type de
req.txt
Saída esperada:
Content-Type: application/x-www-form-urlencodedFaça a correspondência sem diferenciar maiúsculas de minúsculas e ancore no início da linha.
Experimente você mesmo
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
4É Possível Alcançá-lo?
ICMP e pingLendo a Saída do PingQuando o Ping EnganaRecusado ou ExpiradoRecapitulação: Acessibilidade7Enviando Dados
POST com -dO que -d realmente enviaCodificação de formuláriosEnviando JSONPUT e DELETERecapitulação: escrevendo dados2Nomes e DNS
Por que os nomes existemO arquivo hostsConsultando um nomeTipos de registrosRecapitulação: nomes3Portas e Sockets
O que é uma portaPortas conhecidasLocalhostEscutando vs. conectandoRecapitulação: portas6curl em Detalhes
Visualizando os CabeçalhosSalvando RespostasCabeçalhos PersonalizadosStatus e TempoCódigos de Saída do curlRecapitulação: Opções do curl9Autenticação e Depuração
Chaves de API e BearerO User AgentTimeouts e Novas TentativasLendo uma FalhaRevisão: DepuraçãoPratique por conta própria: Playground de Terminal