Eu tenho um aplicativo Web antigo que tenho que suportar (o qual não escrevi).
Ao preencher um formulário e enviar, em seguida, verifique a guia "Rede" no Chrome e vejo "Solicitar carga útil", onde normalmente veria "Dados do formulário". Qual é a diferença entre os dois e quando um seria enviado em vez do outro?
Pesquisei isso no Google, mas realmente não encontrei nenhuma informação que explica isso (apenas pessoas tentando obter aplicativos javascript para enviar "Dados do formulário" em vez de "Solicitar carga útil".
Respostas:
A carga útil da solicitação - ou, para ser mais preciso: o corpo da carga útil de uma solicitação HTTP - são os dados normalmente enviados por uma solicitação POST ou PUT . É a parte após os cabeçalhos e o
CRLF
de uma solicitação HTTP .Uma solicitação com
Content-Type: application/json
pode ser assim:Se você enviar isso por AJAX, o navegador simplesmente mostra o que está sendo enviado como corpo de carga. É tudo o que pode fazer, porque não tem ideia de onde os dados vêm.
Se você enviar um formulário HTML com
method="POST"
eContent-Type: application/x-www-form-urlencoded
ouContent-Type: multipart/form-data
sua solicitação for semelhante a esta:Nesse caso, os dados do formulário são a carga útil da solicitação. Aqui, o Navegador sabe mais: sabe que bar é o valor do campo de entrada do formulário enviado. E é isso que está mostrando a você.
Portanto, eles diferem na
Content-Type
forma como os dados são enviados. Nos dois casos, os dados estão no corpo da mensagem. E o Chrome distingue como os dados são apresentados a você nas Ferramentas do desenvolvedor.fonte
json
oux-www-form-urlencoded
. O primeiro envia os dados como carga útil da solicitação, enquanto o último os codifica como consulta de URL. Ambos parecem funcionar bem. Existe um motivo para preferir um deles? Eu vejo a maioria dos sites como Twitter, Google, Facebook, Stackoverflow e defina o tipo de conteúdox-www-form-urlencoded
. Algum motivo específico?No Chrome, a solicitação com 'Content-Type: application / json' é exibida como Request PayedLoad e envia dados como objeto json.
Mas a solicitação com 'Content-Type: application / x-www-form-urlencoded' mostra Dados do formulário e envia os dados como Chave: par de valores , portanto, se você tiver uma matriz de objeto em uma chave, ela altera o valor dessa chave:
envia
fonte